作业帮 > 综合 > 作业

C++ 写一个函数计算n!.在主函数输入x,计算sin x的近似值.使用如下的泰勒级数:

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 17:35:39
C++ 写一个函数计算n!.在主函数输入x,计算sin x的近似值.使用如下的泰勒级数:
写一个函数计算n!.在主函数输入x,计算sin x的近似值.使用如下的泰勒级数:    

直到最后一项的绝对值小于10-4时停止计算.



好像第一个不对,第二个对的,为什么?第一个错在哪?第二个,为什么可以运行,不是要先判断t吗?可是t是在循环体之内0.0
第二个不对,因为t还没有赋值就进行判断,其内容是不确定的!
再问: 可是可以运行,而且答案对的。在运行中也没显示有错误,
再答: 那只是你程序运行凑巧而已!
double x , t , s=0.0; //这里没有给t赋值,其值不确定
cin >> x;
int n=1;
while( fabs(t) >= 1e-4 ) //这时的t,在第一次时,是个不确定的值,可能是0,也可能是其他值,你能运行出来结果,只是巧合。

反观第一个,程序是对的。
只是“直到最后一项的绝对值小于10-4时停止计算。” 这句话说的不是很清楚,停止时,最后一项若不加,第一个结果就是对的,如果,答案说其不对,你只需要在循环结束后,再加一次t就正确了。
再问: 第一个程序,得把循环条件里的大于等于改为大于,因为不改的话,虽然最后一项有达到要求算出来了,可是没有带入s里面计算,这个理解了。谢谢~
第二个的话,真的是凑巧吗??
我刚刚试验一下和第二个差不多情况的另一个程序,麻烦看补充问题,
再答: 请记住: 当一个变量没有被赋值时,就不要用它进行比较。

定义一个变量,没有赋值,其值是不确定的!!