linux 学习day5

循环

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);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值