do…while语句
一般形式为:
do
语句
while(表达式);
求1-5阶乘的和
#include<stdio.h>
int main(void){
int i=1,s=1,sum=0;
do{
s*=i;
sum+=s;
++i;
}
while(i<=5); //末尾记住加;
printf("%d\n",sum);
return 0;
}
break的作用
用来终止它所在的最内层的一个循环或者switch语句
10个老师募集,如果捐款总数达到1000那么就停止
#include<stdio.h>
int main(void){
int a,sum=0;
for(int i=1;i<=10;++i){
scanf("%d",&a);
sum+=a;
if(sum>=1000)
break;
}
printf("总的捐款数目为%d\n",sum);
return 0;
}
continue的作用
执行它所在的最内层循环语句“()”中最右侧的表达式
1-100之间不能被3整除的数输出
#include<stdio.h>
int main(void){
for(int i=1;i<=100;++i){
if(i%3==0)
continue;
printf("%d\n",i);
}
return 0;
}
#include<stdio.h>
int main(void){
for(int i=1;i<=100;++i){
#if 0
if(i%3==0)
continue;
printf("%d\n",i);
#else
if(i%3!=0)
printf("%d\n",i);
#endif
}
return 0;
}
习题一
1.向屏幕输出以下内容:
#include<stdio.h>
int main(void){
for(int j=1;j<=4;++j){
for(int i=1;i<=5;++i){
printf("%5d ",i*j);
}
putchar('\n');
}
return 0;
}
习题二
2.菲波那切数列:1、1、2、3、5、8、13、21、34、……(从第三个数开始,该数是其前两个数的和)。要求由低到高输出菲波那切数列能被 3 整除的 10 个数,然后再由从低到高的顺序输出斐波那切数列不能被2整除的10个数。
#include<stdio.h>
int main(void){
int a=1,b=1,c,d=1;
for(int i=3;d<=10;++i){
c=a+b;
a=b;
b=c;
#if 0
if(c%3==0){
printf("%d\n",c);
++d;
}
#else
if(c%2==0)
continue;
printf("%d\n",c);
++d;
#endif
}
return 0;
}
习题三
3.2 个乒乓球队比赛,甲队 A,B,C 3 人,乙队 X,Y,Z 3 人。已抽签决定比赛名单。A 说他不和 X 比,C 说他不和 X,Z 比,请编程找到 3 对赛手的名单。
#include<stdio.h>
int main(void){
char a,b,c;
for(char i='X';i<='Z';++i){
a=i;
for(char j='X';j<='Z';++j){
if(j==i)
continue;
b=j;
for(char k='X';k<='Z';++k){
if(k==i||k==j)
continue;
c=k;
if(a!='X'&&c!='X'&&c!='Z')
printf("A和%c,B和%c,C和%c比赛\n",a,b,c);
}
}
}
return 0;
}