4.1
4.1.2 while语句
while(表达式){
循环体语句;
}
当表达式为真时运行循环体语句。
练习4-3
序列求和(1-1/4+1/7-1/10+1/13...),输入一个正实数eps,精确到最后一项的绝对值小于eps,计算序列1-1/4+1/7-1/10+1/13...的值。
#include <stdio.h>
#include <math.h>
int main(void){
int n;
double eps,result,item,flag;
n=1;
result=0;
flag=1.0;
item=1;
printf("输入eps的值:");
scanf("%lf",&eps);
while(fabs(item)>=eps){
item=1.0/(3*n-2);
result=flag*item+result;
flag=-flag;
n++;
}
printf("结果为%.6f",result);
return 0;
}
4.2
4.2.2 do-while语句
do{
循环体语句;
} while(表达式);
与for和while语句不同的是,do-while是先执行后判断,至少会执行一次循环体语句;而for和while语句是先判断后执行
练习4-4
将例4-3中do-while语句改为while语句,是否会影响程序的功能?为啥?再增加一条什么语句,就可以实现相同的功能?
答:是,因为当输入的值为0时,更改后的程序count++将不会执行,会导致count的值与源程序不一致。
增加语句:在while前加do里面包含的语句就可以。
4.3
4.3.2 break 语句和 continue 语句
break语句之前用到过,continue语句和break用法上相同
不过,不同的是break是终止循环,而continue是跳过后面语句并且继续下一个循环
且break可用于swith语句中
练习4-6
猜数字游戏,先输入2个不超过100的正整数,分别是被猜数mynumber和允许猜测的最大次数n,再输入你所猜的数yournumber,与被猜数mynumber比较,相等则猜中,不相等则显示与被猜数的大小关系,最多允许猜n次。若一次猜中则显示"Bingo!",若三次以内猜中则显示"Lucky You!",若超过三次但不超过n次猜中,则显示"Good Guess!",若超过n次都没猜中,或者在达到n次之前用户输入了一个负数,则显示"Game Over!",并结束程序。
#include <stdio.h>
int main(void){
int mynumber,yournumber,n,count=1;
printf("mynumber:");
scanf("%d",&mynumber);
printf("n:");
scanf("%d",&n);
while(count<=n){
printf("yournumber:");
scanf("%d",&yournumber);
if(yournumber<0){
printf("Game Over!");
break;
}else if(yournumber==mynumber){
if(count==1){
printf("Bingo!");
break;
}else if(count<=3){
printf("Lucky you!");
break;
}else{
printf("Good Guess!");
break;
}
}else{
if(count>=n){
printf("Game Over!");
break;
}else{
if(yournumber<mynumber){
printf("Too small!\n");
count++;
}else{
printf("Too big!\n");
count++;
}
}
}
}
return 0;
}
4.4
4.4.2 嵌套循环
(就是循环里面套循环。通俗来说:套娃。)
练习4-7
求e的值:输入1个正整数n,计算下式的前n项之和(保留四位小数),要求使用嵌套循环。
#include <stdio.h>
int main(void){
int i,j,n,temp;
double e=1;
printf("正整数n为:");
scanf("%d",&n);
for(i=1;i<=(n-1);i++){ //因为第一项是1,而不是1/1!,所以要n-1
temp=1;
for(j=1;j<=i;j++){
temp=temp*j;
}
e=e+1.0/temp;
}
printf("e=%.4f",e);
return 0;
}
这个星期先到这里吧,学习有点忙,又加上小长假(bushi),剩下的习题下个礼拜补上!
国庆快乐~~🥳🥳🥳
整理自书籍《C语言程序设计》
如有错误,欢迎纠正!
|