编程计算1-1/3+1/5-1/7+…,
直到最后一项小于10e-4。
(已知正确的运行结果为:sum=0.785349)
下面程序中存在比较隐蔽的错误,
请通过分析和调试程序,发现并改正程序中的错误。
要求改正后的程序仍然用while结构实现。
注意:将修改后的完整的源程序写在答题区内。
对于没有错误的语句,请不要修改,
修改原本正确的语句也要扣分。
当且仅当错误全部改正,且程序运行结果调试正确,
才得分,如果只改正了部分错误,则不加分。
#include <stdio.h>
main()
{
float sum = 0, term = 1, ;
int n = 1, sign = 1;
while (fabs(term) >= 1e-4);
{
sum = sum + term;
sign = -sign;
n = n + 2;
term = sign / n;
}
printf("sum=%f\n",sum);
}
#include <stdio.h>
#include <math.h>
main()
{
float sum = 0, term = 1,n = 1;
int sign = 1;
while (fabs(term) >= 1e-4) //while后面无';'
{
sum = sum + term;
sign = -sign;
n = n + 2;
term = sign * (1/n);
}
printf("sum=%f\n",sum);
}
这篇博客分析了一段包含错误的代码,目标是计算1-1/3+1/5-1/7+...的和,直到最后一项小于10e-4。作者揭示了隐藏的错误,并提供修正后的while循环实现,确保程序运行结果正确为0.785349。
 下面程序中存在比较隐蔽的错误, 请通过分析和调试程序,发现并改正程序中的错误&spm=1001.2101.3001.5002&articleId=115468475&d=1&t=3&u=9c43687a3c0741608eb3b2a86d5edba4)
645

被折叠的 条评论
为什么被折叠?



