• 判断


    判断

    1. 计算时间差

    输⼊两个时间,每个时间分别输⼊⼩时和 分钟的值,然后输出两个时间之间的差, 也以⼏⼩时⼏分表⽰。

    #include <stdio.h>
    
    int main() {
     
       int hour1,minute1;
       int hour2,minute2;
       
       scanf("%d %d",&hour1,&minute1);
       scanf("%d %d",&hour2,&minute2);
       
       int ih = hour2-hour1;
       int im = minute2 - minute1;
       
       if(im < 60){
           im = 60 + im;
           ih--;
       }
       
       printf("时间差是%d小时%d分\n",ih,im);
           
        return 0;
    }

    2. 条件

    计算两个值之间的关系,所以叫做关系运算

     关系运算的结果

    当两个值的关系符合关系运算符的预期时, 关系运算的结果为整数1,否则为整数0

    printf("%d\n", 5==3);

    printf("%d\n", 5>3);

    printf("%d\n", 5<=3);

    优先级

    所有的关系运算符的优先级⽐算术运算的 低,但是⽐赋值运算的⾼

    7 >= 3 + 4

    int r = a>0;

    判断是否相等的==和!=的优先级⽐其他的 低,⽽连续的关系运算是从左到右进⾏的

    5 > 3 == 6 > 4

    6 > 5 > 4

    a == b == 6

    a == b > 0

    3. 找零计算器

    找零计算器需要⽤户做两个操作:输⼊购 买的⾦额,输⼊⽀付的票⾯,⽽找零计算 器则根据⽤户的输⼊做出相应的动作:计 算并打印找零,或告知⽤户余额不⾜以购 买。

    从计算机程序的⾓度看,这就是意味着程 序需要读⽤户的两个输⼊,然后进⾏⼀些 计算和判断,最后输出结果。

    #include <stdio.h>
    
    int main() {
     
        //初始化
        int price = 0;
        int bill = 0;
        //读入金额和票面
        
        printf("请输入商品金额:");
        scanf("%d", &price);
        
        printf("请输入你的票面:");
        scanf("%d",&bill);
        
        //计算找零钱
        printf("应该找你:%d\n",bill - price);
        
        return 0;
    }

    /* */注释

    延续数⾏的注释,要⽤多⾏注释的格式来 写。多⾏注释由⼀对字符序列“/*”开始, ⽽以“*/”结束。

    也可以⽤于⼀⾏内的注释

    int ak=47 /* 36*/, y=9;

    4.判断票⾯够不够

    #include <stdio.h>
    
    int main() {
     
        //初始化
        int price = 0;
        int bill = 0;
        //读入金额和票面
        
        printf("请输入商品金额:");
        scanf("%d", &price);
        
        printf("请输入你的票面:");
        scanf("%d",&bill);
        
        //计算找零钱
        if(bill>=price){
             printf("应该找你:%d\n",bill - price);
        }else{
             printf("你的票面小于商品金额\n");
        }
       
        
        return 0;
    }

    5. ⽐较数的⼤⼩

    #include <stdio.h>
    
    int main() {
     
     int a,b;
       printf("请输入两个整数:");
       
       scanf("%d %d",&a,&b);
       
       int max=0;
       
       if(a>b){
           max = a;
       }else{
           max = b;
       }
       printf("大的那个是%d\n",max);
       
        return 0;
    }

    6.if语句

    ⼀个基本的if语句由⼀个关键字if开头,跟 上在括号⾥的⼀个表⽰条件的逻辑表达 式,然后是⼀对⼤括号“{}”之间的若干条 语句。如果表⽰条件的逻辑表达式的结 果不是零,那么就执⾏后⾯跟着的这对 ⼤括号中的语句,否则就跳过这些语句 不执⾏,⽽继续下⾯的其他语句

    计算薪⽔

    #include <stdio.h>
    
    int main() {
     
        const double RATE = 8.25;
        const int STANDARD = 40;
        double pay = 0.0;
        int hours;
        
        printf("请输入工作的小时数");
        scanf("%d",&hours);
        if(hours>STANDARD){
            pay = STANDARD * RATE + (hours - STANDARD) * (RATE * 1.5 );
        }else{
            pay = hours * RATE;
        }
        
        printf("\n应付工资:%f\n",pay);
     
        return 0;
    }

    7. 判断成绩

    #include <stdio.h>
    
    int main() {
        
        const int PASS = 60;
        int score;
        
        printf("请输入成绩:");
        scanf("%d",&score);
        
        printf("你输入的成绩是%d.\n",score);
        if(score < PASS){
            printf("很遗憾,这个成绩没有及格");
        }else{
            printf("恭喜你,这个成绩及格了。");
        }
        
        printf("再见\n");
        
        return 0;
    }

    嵌套的if

    8.找三个数中的最⼤

    如果要求输⼊三个整数,输 出其中最⼤的,应该怎么做?

    #include <stdio.h>
    
    int main() {
        
        int a,b,c;
        
        printf("请输入三个整数:");
        scanf("%d %d %d",&a,&b,&c);
        
        int max = 0;
        if(a > b){
            if(a > c){
                max = a;
            }else{
                max = c;
            }
        }else{
           if(b > c){
               max = b;
           }else{
               max = c;
           }
        }
        
        printf("最大的是%d \n",max);
        
        return 0;
    }

    嵌套的判断

    当if的条件满⾜或者不满⾜的时候要执⾏的语句也 可以是⼀条if或if-else语句,这就是嵌套的if语句

     else的匹配

    else总是和最近的那个if匹配

     缩进

    缩进格式不能暗⽰else的匹配

     嵌套的if

    if ( gameover == 0 ) if ( player2move == 2 ) printf("Your turn\n");

    if ( gameover == 0 ) if ( player2move == 2 ) printf("Your turn\n"); else printf("My turn\n");

    9. 级联的if-else if

    分段函数

    if ( x < 0 ) {

    f = -1;

    } else if ( x == 0 ) {

    f = 0;

    } else {

    f = 2 * x; }

    级联的if-else if

     

    if语句常⻅错误

    • 忘了⼤括号
    • if后⾯的分号
    • 错误使⽤==和=
    • 使⼈困惑的else
    • if后⾯的分号
    • 错误使⽤==和=,    if只要求()⾥的值是零或⾮零
    • 永远在if和else后⾯加上⼤括 号,即使当时后⾯只有⼀条语 句

    代码风格

    • 在if和else之后必须加上⼤括号形成语句块;
    • ⼤括号内的语句缩进⼀个tab的位置;

    10.多路分⽀

    switch-case

    • 控制表达式只能是整数型的 结果
    • 常量可以是常数,也可以是 常数计算的表达式
    • 根据表达式的结果,寻找匹 配的case,并执⾏case后⾯的 语句,⼀直到break为⽌
    • 如果所有的case都不匹配,那 么就执⾏default后⾯的语句; 如果没有default,那么就什么 都不做
    #include <stdio.h>
    
    int main() {
        
        int type=0;
        printf("输入1-4\n");
        scanf("%d",&type);
        
       switch(type){
           case 1:
           printf("你好");
           break;
           case 2:
           printf("早上好");
           break;
           case 3:
           printf("中午好");
           break;
           case 4:
           printf("下午好");
           break;
           default:
           printf("请输入1-4\n");
       }
       
       printf("重新运行");
        
        return 0;
    }

    break

    switch语句可以看作是⼀种基于计算的 跳转,计算控制表达式的值后,程序会 跳转到相匹配的case(分⽀标号)处。 分⽀标号只是说明switch内部位置的路 标,在执⾏完分⽀中的最后⼀条语句后, 如果后⾯没有break,就会顺序执⾏到下 ⾯的case⾥去,直到遇到⼀个break,或 者switch结束为⽌。

    #include <stdio.h>
    
    int main() {
        
       printf("请输入成绩(0-100)\n");
       int grade;
       
       scanf("%d",&grade);
       
       grade /= 10;
       
       switch(grade){
           case 10:
           case 9:
           printf("A\n");
           break;
           case 8:
           printf("B\n");
           break;
           case 7:
           printf("C\n");
           break;
           case 6:
           printf("D\n");
           break;
           default:
           printf("F\n");
           break;
       }
        
        return 0;
    }

    这段代码不符合”单一出口“的原则,因为我们还没学过字符或字符串数据的处理

  • 相关阅读:
    Freemarker
    加解密算法、消息摘要、消息认证技术、数字签名与公钥证书
    Jenkins入门
    kafka实战
    多线程文件下载
    Excel操作报表
    @Pointcut 使用@annotation 带参数
    博客园设置
    Windows下 tensorboard显示No graph definition files were found的问题解决
    通过GitHub Desktop 上传代码到github 远程仓库
  • 原文地址:https://www.cnblogs.com/hechunfeng/p/15646405.html
Copyright © 2020-2023  润新知