第 4 章循环结构【练习 4-1】在例 4-1 程序中,如果对 item 赋初值 0,运行结果是什么
如果将精度改为 10-3,运行结果有变化吗
解答:如果对 item 赋初值 0,则程序运行结果是 pi=O,因为 item 为 0 时不满足while 循环的执行条件,即不执行循环,故 pi 值为 0
如果将精度改为 10-3,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度变大使得while 循环次数减少,必然影响到 n 的值
【练习 4-2】运行例 4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化吗
如果第一个输入数据是-1,运行结果是什么
解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以
如果第一个输入数据是-1,运行结果是:Gradeaverageis0,因为第一个输入就是-1,则 while 循环条件不成立,不执行循环体
【练习 4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数 eps,计算序列 1T/4+1/7-1/10+1/13T/16…的值,精确到最后一项的绝对值小于 eps(保留 6 位小数)
试编写相应程序
解答:#include#includeintmain(void){intdenominator,flag;doubleitem,s,eps;printf(“Inputeps:”);scanf(“%lf”,&eps);flag=1;denominator=1;item=1
0;s=0;while(fabs(item)>=eps){item=flag*1
0/denominator;s=s+item;flag=-flag;denominator=denominator+3;}printf