📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

C程序设计第五章作业13

创建时间2018-02-02最后修改2018-02-02原位置/程序员成长之旅/C语言/习题(C语言程序设计)/第五章习题/字数249图片/附件6
目录:程序员成长之旅/C语言/习题(C语言程序设计)/第五章习题

问:

键入需要求的平方根,按照迭代法计算 并且输出(精度小于

🖼 图片占位(归档模式)图片见原始导出:C%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E7%AC%AC%E4%BA%94%E7%AB%A0%E4%BD%9C%E4%B8%9A13.assets/0.8137291024533482.png
即小于0.00001)

迭代法计算方法:

🖼 图片占位(归档模式)图片见原始导出:C%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E7%AC%AC%E4%BA%94%E7%AB%A0%E4%BD%9C%E4%B8%9A13.assets/clip_image001e90afed6-1773-496b-8d7b-59d820bd105d.png
🖼 图片占位(归档模式)图片见原始导出:C%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E7%AC%AC%E4%BA%94%E7%AB%A0%E4%BD%9C%E4%B8%9A13.assets/20180202164541463.jpg
答:

#include<stdio.h>

#include<math.h>

int main()

{

//int Num = 0;

double  Num = 0,accuracy = 0.00001, Xn = 0.00001, XnAdd1 = 0.00001, difference = 0.00001;

printf("Enter square root:\n");

scanf("%lf", &Num);

if (Num > 0 && Num <= 99999)

{

Xn = Num * 0.50000;//设置初始值

do

{

XnAdd1 = ((Xn + Num / Xn) / 2.00000);

Xn = ((XnAdd1 + Num / XnAdd1) / 2.00000);

difference = fabs(XnAdd1 - Xn);//检查精度

} while (difference >= accuracy);//检查精度

Xn < XnAdd1 ? printf("You enter number is[%.2f],Result is [%.5f]", Num, Xn) : printf("You enter number is[%.2f],Result is [%.5f]", Num, XnAdd1);

}

else

{

setbuf(stdin, NULL);

printf("Data is error!\n");

return 0;

}

return 0;

}