C语言_分支结构

逻辑与&&,逻辑或||  的短路现象:

&&   一假即假      左边为假,不运行右边

|| 一真即真     左边为真,不运行右边


枚举

一组有符号名称的整形常量--罗列出所有状态和所有可能的结果。

枚举属构造类型

enum 枚举名 {美剧值列表};

作用:将人能看懂的标识符与计算机能识别的数字建立对应关系,提高程序的可阅读性。


if(条件表达式1){语句1;

} else if(条件表达式2){语句2;

} else{语句3;

条件表达式的返回值为BOOL类型



Switch语句

switch(整型表达式){
case 1:{语句1;break;}case2:{语句2;break;}...
case 3:{语句n;break;}default:{语句n + 1;break;}

break 用在 switch...case中,用于结束某个case,然后执行switch之外的语句。

整个default语句都可以舍掉

多个case可以运⾏一个语句块

case中定义变量需要加{} 

default语句放不放倒最后,不影响执行结果

switch语句执行直到下一个break或switch语句结束才回终止。


1.输入月份和日期,输出时该年的第几天


    int month =0, day = 0;

    

    printf("请输入月份:\n");

   scanf("%d", &month);

    

    printf("请输入日期:\n");

   scanf("%d", &day);

    

   int sum = 0;

    

   switch (month - 1) {


       case 11:

            sum +=30;

       case 10:

            sum +=31;

       case 9:

            sum +=31;

       case 8:

            sum +=31;

       case 7:

            sum +=31;

       case 6:

            sum +=30;

       case 5:

            sum +=31;

       case 4:

            sum +=30;

       case 3:

            sum +=31;

       case 2:

            sum +=28;

       case 1:

            sum +=31;

            

       default:

           break;

        

    }

    sum += day;

    

    printf("%d%d是该年的第%d\n", month, day, sum);




2.输入一个年份,判断是不是闰年

    int year =0;

    

    printf("输入一个年份:");

    

   scanf("%d", &year);

    

   if ((0 == year %4 && 0 != year %100) ||0 == year % 400) {

        

       printf("%d年是闰年\n", year);

        

    }else {

    

       printf("%d年不是闰年\n", year);

        

    }




3.判断输入字符

    char c ='\0';

    

    printf("请输入一个字符:\n");

   scanf("%c", &c);

    

   if (c >= 'A' && c <='Z') {

        

       printf("大写字母\n");

        

    }else if (c >='a' && c <= 'z') {

        

       printf("小写字母\n");

    

    }else if (c >='0' && c <= '9') {

    

       printf("数字\n");

    

    }else {

    

       printf("其他\n");

    

    }



4. 编制一个完成两个数四则运算程序。如:用户输入34+56 则输出结果为90.00,要求运算结果保留2 位有效小数,用户输入时将2 个运算数以及

运算符都输入,根据运算符求结果 


    float number1 =0, number2 = 0;

   char c = '\0';

    

    printf("请输入两个运算数及运算符(eg:34+56):\n");

   scanf("%f%c%f", &number1, &c, &number2);

    

   float result = 0;

    

   switch (c) {

       case '+':

            result = number1 + number2;

           printf("运算结果为%.2f\n", result);

           break;

       case '-':

            result = number1 - number2;

           printf("运算结果为%.2f\n", result);

           break;

       case '*':

            result = number1 * number2;

           printf("运算结果为%.2f\n", result);

           break;

       case '/':

            result = number1 / number2;

           printf("运算结果为%.2f\n", result);

           break;

            

       default:

           break;

    }



5.判断输入的三个数能不能构成三角形

    int number1 =0, number2 = 0, number3 =0;

    

    printf("请输入三个数:\n");

    scanf("%d%d%d", &number1, &number2, &number3);

    

    

   if ((number1 + number2) > number3 && (number2 + number3)

        > number1 && (number1 + number3) > number2) {

        

        printf("能构成三角形\n");

        

    }else {

        

        printf("不能构成三角形\n");

    }



6. 输入三个数,用两种方法打印出中间值( 只使用条件运算符) 

    int number1 =0, number2 = 0, number3;

    

    printf("请输入三个数:\n");

   scanf("%d%d%d", &number1, &number2, &number3);

    

   int max = number1 > number2 ? number1 : number2;

    max = max > number3 ? max : number3;


   int min = number1 < number2 ? number1 : number2;

    min = min < number3 ? min : number3;

    

   int mid = (number1 > min) && (number1 < max) ? number1 :

    ((number2 > min) && (number2 < max) ? number2 : number3);


   printf("中间值为%d\n", mid);






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值