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