C语言回顾 二 BOOL 关系运算符 条件运算符 enum

BOOL类型:表示非真即假,用于判断,主要应用在分支结构中,表示的的值是YES NO,进行打印输出的时候YES的值会替换成1,NO的值会替换成0;
关系运算符 >  >= < <= == !=
主要用于比较运算,比较的结果只有真假两种情况,结果值用BOOL类型变量存储;
注意: 判断两个数是否相等,用==(双等号);
    BOOL l = 2/3;
    printf("%d\n",l);
    BOOL l1 = 4 >=6;//l1存放的是表达式4》=6的结果
    BOOL l2 = 2 !=2;//l2存放的是表达式2!=2的结果
    printf("%d,%d\n",l1,l2);
  逻辑运算符   &&逻辑与  ||逻辑或   !逻辑非
    逻辑与&&两边同时为真时为整个表达式的值为真,否则为假;
    BOOL l = 2 < 4 && 3 >+ 5;
    printf("%d\n",l);
    短路现象 前面的表达式为假,后面的不执行;
    int a = 3;
    BOOL l1 = a < 5 && a++;
    printf("a=%d,l1=%d",a,l1);
    
   逻辑或 || 注意: 两边表达式都为假的时候,整个表达式为假;
    BOOL l = 2 < 4 || 4 == 6;
    printf("l=%d\n",l);
    短路现象;前一个人表达式的值为真,后一个表达式不执行;
    int a = 3;
    BOOL l1 = a > 1 || --a;
    printf("a=%d,l1=%d",a,l1);
    逻辑非 !表达式的值取反,
    BOOL l = !(3>5);
    printf("%d\n",l);
    int a = 3;
    BOOL  l1 =!(a++ || --a);
    printf("%d, l1=%d\n",a,l1);
    if 语句的三种形式
     if (条件表达式) {
    语句;
     } 语句2 ;    
    char a = '0';
    printf("请输入一个字符:");
    scanf("%c",&a);
    if ('m'==a) {
        printf("输出为男性");}   
判断一年是否为闰年
    int year = 0;
    printf("请输入一个年份:");
    scanf("%d",&year);
    if(year%400==0||(year%4==0 && year%100!=0)){
        printf("是闰年");
    }else {
        printf("不是闰年");
    }
   输入一个字符,
    char a = '0';
    printf("请输入一个字符:");
    scanf("%c",&a);
    if (a >= 48 && a <= 57) {
        printf("This is digitai");
    }else if (a >= 65 && a <= 90){
        printf("This is capital letter");
    }else if (a >= 97 && a <= 122){
        printf("This is letter");
    }else
        printf("other");
    
    
  条件运算符(三目运算符)
    条件表达式 ? 表达式1 :表达式2
    如果条件表达式为真,整个表达式的值为表达式1的值;
    如果条件表达式为假,整个表达式的值为表达式2的值;
    int a = 3, b = 5;
    int c = a < b ? a++ : b;
    printf("a=%d,b=%d,c=%d\n",a,b,c);
 switch...case
    break用于switch。。case中结束某个case,然后执行switch之外的语句;
    switch语句和if-else级联式比较,switch语句往往比级联        是更容易阅读,更直观;
    switch——开关, case——情况,  开关决定发生的情况;
    case后面的标签只能是整型常量或者整型常量的表达式,不能用变量作为case的标签;
    整个default语句都可以舍掉;
    多个case可以运行一个语句块;
    case中定义变量需要加{};
    int a = 0;
    printf("请输入一数值:");
    scanf("%d",&a);
    switch (a) {
        case 1:
            printf("case1\n");
            break;
        case 2:
            printf("case2\n");
            break;
        case 3:
            printf("case3\n");
            break;
        default:
            printf("default\n");
            break;
           }
 枚举类型 enum 枚举名{枚举值表};
    类型 enum 枚举名
    enum season{
        spring,// 默认值为0,后面一次加1
        summer = 6,
        autumn,
        winter
    };//分号不要丢
    //定义一个变量
    int a = 0;
    //提示输入一个数
    printf("请输入一个数字");
      scanf("%d",&a);
    //switch  (case对应的是season的枚举值)
    switch (a) {
        case spring:
            printf("出去春游\n");
            break;
        case summer:
            printf("出去游泳\n");
            break;
        case autumn:
            printf("去爬香山\n");
            break;
        case winter:
            printf("去滑雪\n");
            break;
        default:
            printf("别想了,先敲代码吧");
            break; }
    //从控制台输入1——7的数,输出星期一到星期日(借助枚举类型)
    enum week{
        monday=1,
        tuesday,
        wedensday,
        thursday,
        friday,
        staturday,
        sunday
    };
    int a = 0;
    printf("从控制台输入1--7的数:");
    scanf("%d",&a);
    switch (a) {
        case monday:
            printf("星期一"); break;
        case tuesday:
            printf("星期二"); break;
        case wedensday:
            printf("星期三"); break;
        case thursday:
            printf("星期四"); break;
        case friday:
            printf("星期五"); break;
        case staturday:
            printf("星期六"); break;
        case sunday:
            printf("星期日"); break;
        default:
            printf("不是正确的日期"); break;
}
.编写整型值数组排序程序(冒泡排序、选择排序、快速排序-¬-¬升序) int a[] = {3,-¬9,32,77,63,-¬24,14,0,21,45};
选择排序
    int a[] = {3, -9, 32, 77, 63, -24, 14, 0, 21, 45};
    for (int i = 0; i < 9; i++) {
        int min = i;
        for (int j = i + 1; j < 10; j++) {
            if (a[min] > a[j]) {
                min = j;}
        }
        if (min != i) {
            int temp = a[i];
            a[i] = a[min];
            a[min] = temp;
        }
        printf("%d ", a[i]);
    }printf("\n");
6.输入生日,输出年龄(周岁)和星座
    int c1 = 0, c2 = 0, c3 = 0;
    int age = 0;
    printf("输入你的生日:");
    scanf("%d.%d.%d", &c1, &c2, &c3);
    age = 2015 - c1;
    printf("%d周岁\n", age);
    if ((c2 == 3 && c3 >=21) || (c2 == 4 && c3 <= 19) ) {
        printf("白羊座\n");
    } else if ((c2 == 4 && c3 >= 20) || (c2 == 5 && c3 <= 20)) {
        printf("金牛座\n");
    } else if ((c2 == 5 && c3 >= 21) || (c2 == 6 && c3 <= 21)) {
        printf("双子座\n");
    } else if ((c2 == 6 && c3 >= 22) || (c2 == 7 && c3 <= 22)) {
        printf("巨蟹座\n");
    } else if ((c2 == 7 && c3 >= 23) || (c2 == 8 && c3 <= 22)) {
        printf("狮子座\n");
    } else if ((c2 == 8 && c3 >= 23) || (c2 == 9 && c3 <= 22)) {
        printf("处女座\n");
    } else if ((c2 == 9 && c3 >= 23) || (c2 == 10 && c3 <= 23)) {
        printf("天秤座\n");
    } else if ((c2 == 10 && c3 >= 24) || (c2 == 11 && c3 <= 22)) {
        printf("天蝎座\n");
    } else if ((c2 == 11 && c3 >= 23) || (c2 == 12 && c3 <= 21)) {
        printf("射手座\n");
    } else if ((c2 == 12 && c3 >= 22) || (c2 == 1 && c3 <= 19)) {
        printf("摩羯座\n");
    } else if ((c2 == 1 && c3 >= 20) || (c2 == 2 && c3 <= 18)) {
        printf("水瓶座\n");
    } else {
        printf("双鱼座\n");
7.查找ASCII码表,分别用%d输出字符,用%c输出整数  
    int e = 0;  char g = 'a';
    printf("请输入一个字符:\n");
    scanf("%c", &g);
    printf("转化为整数:%d\n", g);
    printf("请输入一个整数:");
    scanf("%d", &e);
    printf("转换为字符:%c\n",e);
第一题  输入一个整数,判断奇偶,并输出“某某是奇数”或者“某某是偶数”
    int a = 0;
    printf("请输入一个整数:");
    scanf("%d",&a);
    if(0 == a%2){
        printf("是偶数");
    }  printf("是奇数");
   
 第二题  输入一个数,判断符号。如果大于 0,输出“正数”;如果小于 0,输 出“负数”;如果等于 0,输出“0”
     int a = 0;
    printf("请输入一个数:");
    scanf("%d",&a);
    if (a>0) {
        printf("整数");
    } else  if(a<0){
        printf("负数");
    }else if (a==0){
        printf("0");
    }
  
第三题  编程判断3人中谁的年龄最大,并打印最大者的年龄
    int age1 = 0, age2 = 0, age3 = 0;
    int max = 0;
    printf("输入三个年龄:");
    scanf("%d %d %d",&age1,&age2,&age3);
    if (age1>age2 && age1 > age3) {
        max = age1;
        printf("年龄最大:%d",max);
    }else if (age2>age1 && age2> age3) {
        max = age2;
        printf("年龄最大:%d",max);
    }else if (age3>age1 && age3> age2) {
        max = age3;
        printf("年龄最大:%d",max);
    }
第四题  铁路托运行李规定:行李重不超过 50 公斤的,托运费按 0.15 元每 公斤计算,如果超过 50 公斤,超出部分每公斤加收 0.1 元。编程实现上述功能
   float a = 0;  float b = 0;
    printf("输入重量:");
    scanf("%f",&a);
    if (a<=50) {
        b = a * 0.15;
        printf("收费:%.2f",b);
    } else {
        float c = 0;
        float d = 0;
        c = a - 50;
        d = c * 0.25;
        b = 50 * 0.15 + d;
        printf("收费%.2f",b);
    }
第五题   写一段程序,输入 x,输出 y 值,如果x<1 的时候,y = x;如果1<=x<10 的时候,y=2x-1; 如果x>=10 的时候,y=3x-11。最后输出x,y的值。
    int x = 0, y = 0;
    printf("输入:");
    scanf("%d%d",&x,&y);
    if (x<1) {
        x = x;
        y = x;
        printf("输出:x=%d y=%d",x,y);
    } else if(x>=1&&x<10){
        x = x;
        y = 2 * x - 1;
        printf("输出:x=%d y=%d",x,y);
    }else if(x>=10){
        y = 3 * x - 11;
        printf("输出:x=%d y=%d",x,y);
    }
第六题  编制一个完成两个数四则运算程序。如:用户输入 34+56 则输出结 果为 90.00,要求运算结果保留 2 位有效小数,用户输入时将 2 个运算数以及运算符都输入,根据运算符求结果
    float a = 0, b = 0;
     char f = '0';
     printf("请输入正确的运算符和运算数:");
     scanf("%f%c%f",&a,&f,&b);
     switch (f){
     case '+':
     printf("运算结果:%.2f",a+b);
     break;
     case '-':
     printf("运算结果:%.2f",a-b);
     break;
     case '*':
     printf("运算结果:%.2f",a*b);
     break;
     case '/':{
     if (0 == b){
     printf("除数不能为0");
     }else
     {printf("运算结果:%.2f",a/b);
     }break;}
     default:
     printf("请输入正确的格式");
     break;
     }printf("\n");
    //第七题  输入 3 个数,判断是否能构成三角形
    float a = 0, b = 0, c = 0;
    printf("输入三个数:");
    scanf("%f%f%f",&a,&b,&c);
    if (a+b>c && (a-b<c && a-c<b)) {
        printf("能构成三角形");
    }else if(a+c>b && (a-c<b && a-b<c)){
        printf("能构成三角形");
    }else if(b+c>a && (b-c<a && b-a<c)){
        printf("能构成三角形");
    }else  printf("不能构成三角形");
 第八题输入三个数,用两种方法打印出中间值(即第二大值) 提示:第一种,先求最大最小;第二种,只使用条件运算符
    第一种 三目运算符
    float a = 0, b = 0, c = 0;
    float max = 0, min = 0, sum = 0, r = 0;
    printf("请输入三个数:");
    scanf("%f%f%f", &a, &b, &c);
    max = a >= b ? a : b;
    max = max >= c ? max : c;
    min = a <= b ? a : b;
    min = min <= c ? min : c;
    sum = a + b + c;
    r = sum - max - min;    printf("mid = %.2f\n", r);
第二种  
float a = 0, b = 0, c = 0;
    printf("请输入三个数:");
    scanf("%f%f%f", &a, &b, &c);
    if ((a > b && a < c) || (a < b && a > c)) {
        printf("%.2f为中间数\n", a);
    } else if ((b > a && b < c) || (b < a && b > c )){
        printf("%.2f为中间数\n", b);
    } else { printf("%.2f为中间数\n", c); 
   第九题  使用for循环打印1-10
    int i = 0;
    for (i=1; i<11; i++) {
        printf("%d",i);
    }
         return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值