1.循环
for
for(表达式1;表达式2;表达式3)
{
语句块;
}
表达式1:循环变量赋初值
表达式2:终止条件
表达式3:增值或减值
===============================
for(int i=0;i<5;i++)
{
printf("%d\n",i);
}
执行顺序:
先执行表达式1,判断表达式2是否成立
成立:进入循环,执行代码块,再执行表达式3,再判断表达式2是否成立
不成立:循环结束
练习
求出三位数的所有水仙花数
#include<stdio.h>
int main(int argc, char const *argv[])
{
int g=0,s=0,b=0;
for(int i=100;i<=1000;i++)
{
g=i%10;
s=i/10%10;
b=i/100;
if(i==g*g*g+s*s*s+b*b*b)
printf("%d\n",i);
}
return 0;
}
嵌套结构
外圈执行一次,内圈执行一轮
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
{
printf("%d %d\n",i,j);
}
}
可以同putchar(10);来实现换行
\t来实现对齐
#include<stdio.h>
int main(int argc, char const *argv[])
{
for(int i=1;i<10;i++)
{
for(int j=1;j<=i;j++)
{
printf("%d*%d=%d\t",i,j,i*j);
}
putchar(10);
}
return 0;
}
while
int i=1;
while(终止条件)
{
语句块;
增值或减值;
}
while语句中的表达式可以是任意类型的表达式,若表达式的值为非0,则表示循环条件为真,执行循环体语句;若表达式的值为0,则表示循环条件为假,不执行循环体语句,结束循环,执行循环后面的语句
while(0) 程序直接不执行
while(1)进入死循环
do_while
do
{
代码段;
} while (终止条件);
while和do_while区别:
do_while 先执行一次代码段,再判断条件是否成立
while 先判断条件是否成立,再运行代码段
循环控制语句
break 终止本层循环
continue 结束本层本次循环,继续之后的循环
return
循环输入一个5位数,判断它是不是回文数。当输入0时循环结束。
即12321是回文数,个位与万位相同,十位与千位相同
#include<stdio.h>
int main(int argc, char const *argv[])
{
int i,w=0,q=0,b=0,s=0,g=0;
while(1)
{
printf("输入数字,输入0停止:");
scanf("%d",&i);
if(i==0)
{
break;
}
if(i<10000||i>99999)
{
printf("不是合法数字\n");
}
if(i>=10000&&i<=99999)
{
w=i/10000;
q=i/1000%10;
b=i/100%10;
s=i/10%10;
g=i%10;
if(w==g&&q==s)
{
printf("是回文数\n");
}
else{
printf("不是回文数\n");
}
}
}
return 0;
}
0 结束整个程序
include<stdio.h>
int main(int argc, char const *argv[])
{
int i=0,data1=0,data2=0;
char op;
printf("输入要计算的内容");
scanf("%d%c%d",&data1,&op,&data2);
switch(op)
{
case '+':
printf("%d%c%d=%d\n",data1,op,data2,data1+data2);
break;
case '-':
printf("%d%c%d=%d\n",data1,op,data2,data1-data2);
break;
case '*':
printf("%d%c%d=%d\n",data1,op,data2,data1*data2);
break;
case '/':
printf("%d%c%d=%d\n",data1,op,data2,data1/data2);
break;
}
return 0;
}
输入任意两个数,输出两数之间(包括这两个数)偶数之和
include<stdio.h>
int main(int argc, char const *argv[])
{
int i=0,a=0,b=0,c=0,sum=0;
scanf("%d %d",&a,&b);
if(a>b)
{
c=a,a=b,b=c;
}
for(i=a;i<=b;i++)
{
if(i%2==0)
{
sum+=i;
}
}
printf("%d\n",sum);
return 0;
}