目录
控制类语句
while循环控制语句
案列
#include<stdio.h>
int main()
{
int sum=0;
int data=1;
while(data<=100)
{
printf("data=%d\n",data);
sum=sum+data;
data++;
}
printf("sum=%d\n",sum);
return 0;
}
tips:1.一定要给data赋初始值,否则不知道系统会给data赋什么初始值。
2.条件的临界值
3.条件发生变化
do while循环
#include<stdio.h>
int main()
{
int data =0;
do
{
printf("this is a test");
data--;
}while(data==0);
return 0;
}
For循环
for(表达式1;表达式2;表达式3)语句
可以改写为while循环的形式
表达式1
while(表达式2)
{
语句
表达式3
}
两者无条件等价
#include<stdio.h>
int main()
{
int data;
for(int data=1;data<=100;data++)
{
puts("678");
}
return 0;
}
break:
提前结束整个循环
example:
#include <stdio.h>
int main()
{
int numofperson;
int total=0;
int money;
for(numofperson=1;numofperson<=1000;numofperson++)
{
puts("请输入捐款数目");
scanf("%d",&money);
total=total+money;
if(total >= 100000)
{
puts("ok");
break;
}
}
printf("总捐款人数%d\n",numofperson);
printf("评价捐款数据;%f\n",(float)total/numofperson);
return 0;
}
contine:
提前结束本次循环
#include<stdio.h>
int main()
{
int data=100;
for (data>=100;data<=200;data++)
{
if(data%3!=0)
{
continue;
}
printf("%d ");
}
return 0;
}
循环嵌套
作业
1.输入两个正整数m和n,求其最大公约数和最小公倍数。
#include<stdio.h>
int main()
{
int m,n,max,min,c,b;
puts("输入两个数");
scanf("%d",&m);
scanf("%d",&n);
c=m%n;
b=m*n;
while(c!=0)
{
m=n;
n=c;
c=m%n;
}
max=n;
min=b/max;
printf("最大公约数为%d,最小公倍数为%d\n",max,min);
return 0;
}
2.水仙花数
#include<stdio.h>
int main()
{
int a;
int b,c,d;
b=a/100;
c=(a/10)%10;
d=a%10;
for(a=100;a<=999;a++)
{
if(a==b*b*b+c*c*c+d*d*d)
{
printf("水仙花数为%d\n",a);
}
}
return 0;
}