循环
1.1 for 循环
基本格式
for(表达式1;表达式2;表达式3){
语句块;
}
===============================
例子:从1到10输出
for(int i=1;i<=10;i++){
printf("%d\n",i);
}
执行顺序:
先执行表达式1,判断表达式2;
如果成立:执行表达式3,执行表达式3,回到表达式2;
不成立:结束循环;
练习:输出所有三位数的水仙花数
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);
}
注意:
在循环内定义的变量在循环结束后消失
循环嵌套
在for函数中嵌套一个for循环
例子:for(int i=0;i<5;i++){
for(int j=0;j<3;j++){
printf("%d %d\n",i,j);
}
}
练习:打印九九乘法表
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);
}
1.2 while循环
基本格式:
int i=1;while(终止条件){
语句块;
增值或减值;
}
执行顺序:
首先判断终止条件,成立后执行函数,然后返回判断终止条件
常用死循环:while(1);
当while(a)中的a!=0是,执行函数
1.3 do while 循环
基本格式:
do{代码段;
} while (终止条件);
执行顺序:
首先执行函数,然后判断终止条件,成立后执行函数
//练习
#include<stdio.h>
int mian(){
int x=-4;
do{
printf("%d\n",x+=2);
}while(!(x++));
}
首先执行x+=2,然后判断!(x++),
1.4循环控制语句
1.4.1 break
break:结束当前循环
//例子:
#include<stdio.h>
int main(){
int i=0;
for(i=1;i<10;i++){
if(i%5==0){
break;
}
printf("%d ",i);
}
printf("hello\n");
return 0;
}
1.4.2 continue
continue:结束本次循环,进行下一次循环
//例子
#include<stdio.h>
int main(){
int i=0;
for(i=1;i<6;i++){
for(int j=1;j<4;j++){
if(j==2){
continue;
}
printf("i:%d j:%d\n",i,j);
}
}
printf("hello\n");
return 0;
}
1.4.3 return 0
return 0:结束整个函数
练习
1.循环输入一个5位数,判断它是不是回文数。当输入0时循环结束。
即12321是回文数,个位与万位相同,十位与千位相同。
2.写程序实现功能:读入两个整数(data1和data2)和一个运算符(op),计算表达式data1 op data2 的值.其中op可以为+、-、*、/四个符号中的任一种(用switch语句实现)
3.输入任意两个数,输出两数之间(包括这两个数)偶数之和。
//判断回文数
#include<stdio.h>
int main(){
printf("请输入判断5位数\n");
while(1){
int n=-1;
scanf("%d",&n);
getchar();
if(n!=0){
if(n<=99999 && n>=10000){
if((n%10==n/10000) && (n%100/10==n%10000/1000)){
printf("%d是回文数\n",n);
}else{
printf("%d不是回文数\n",n);
}
}else{
printf("输入错误\n");
}
}else{
return 0;
}
printf("继续输入?退出输入0\n");
}
}
//自制计算器
#include<stdio.h>
int main(){
int a=0,b=0;
char op;
printf("请输入两个整数和运算符 12 12 +\n");
scanf("%d %d %c",&a,&b,&op);
switch(op){
case '+':printf("%d\n",a+b);break;
case '-':printf("%d\n",a-b);break;
case '*':printf("%d\n",a*b);break;
case '/':printf("%d\n",a/b);break;
}
}
//输出两数之间偶数和
#include<stdio.h>
int main(){
int sum=0,a=-1,b=-1;
printf("请输入两个数\n");
scanf("%d %d",&a,&b);
if(a>b){a=a+b;b=a-b;a=a-b;}
if(a==b && a%2==1){
printf("%d %d之间没有偶数\n",a,b);
}else{
for(int i=a;i<=b;i++){
if(i%2==0){
sum+=i;
}
}
printf("sum=%d\n",sum);
}
}