美文网首页
C语言练习:if语句

C语言练习:if语句

作者: Aladdim | 来源:发表于2019-11-15 22:03 被阅读0次

    C语言练习题:if语句(12题)

    1.判定三角形类型

    /*
        __author__ = 'xiaofeizhang'
        函数作用:判定三角形类型 
    */ 
    #include <stdio.h>
    int main(void){
        float a, b, c;
        printf("请输入第一条边的长度:%f", &a);
        scanf("%f", &a);
        printf("第一条边的长度为:%f\n", a);
        printf("请输入第二条边的长度:%f", &b);
        scanf("%f", &b);
        printf("请输入第三条边的长度:%f", &c);
        scanf("%f", &c);
        if (a>=b+c || b>=a+c || c>=a+b){
            printf("这三条边无法组成一个三角形\n"); 
        }
        else{
            if (a==b && a==c && b==c){
                printf("这是一个等边三角形\n");
            }
            else if (a==b || a==c || b==c){
                printf("这是一个等腰三角形\n"); 
            }
            else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a){
                printf("这是一个直角三角形");
            } 
        }
        return 0; 
    }
    
    /*
    请输入第一条边的长度:0.0000001
    第一条边的长度为:1.000000
    请输入第二条边的长度:0.0000002
    请输入第三条边的长度:0.0000003
    这三条边无法组成一个三角形
    
    --------------------------------
    Process exited after 2.5 seconds with return value 0
    请按任意键继续. . .
    
    */ 
    

    2.根据x的不同,输出不同的y

    /*
        __author__ = 'xiaofeizhang'
        函数作用: 根据x的不同,输出不同的y
    */
    #include<stdio.h>
    int main(void){
        int x, y; 
        printf("请输入x的值:");
        scanf("%d", &x);
        if(x>0){
            y = 1;
        }
        else if (x == 0){
            y = 0;
        }
        else{
            y = -1;
        }
        printf("y的值为%d", y);
        return 0;
    } 
    
    /*
    请输入x的值:-1
    y的值为-1
    
    请输入x的值:0
    y的值为0
    
    请输入x的值:1
    y的值为1
    --------------------------------
    Process exited after 0.975 seconds with return value 0
    请按任意键继续. . .
    
    */ 
    

    3.判定某年某月有多少天

    /*
        __author__ ='xiaofeizhang'
        函数作用:判定某年某月有多少天
    */
    #include<stdio.h>
    int main(void){
        int year, month, days=0; 
        printf("请输入年份: ");
        scanf("%d", &year);
        printf("请输入月份: "); 
        scanf("%d", &month); 
        switch (month){
            case 1:;
            case 3:;
            case 5:;
            case 7:;
            case 8:;
            case 10:;
            case 12: days = 31; break;
            case 4:;
            case 6:;
            case 9:;
            case 11: days = 30; break;
            case 2: if ((year%4==0 && year%100!=0)||year%400==0){
                days = 29;      }
                    else{
                        days = 28;
                        break;
                    }
        }
        if (days != 0){
            printf("%d年%d月有%d天", year,month,days);
        } 
        else {
            printf("输入的时间有问题");
             
        }
        return 0;
    }
    
    /*
    请输入年份: 2019
    请输入月份: 2
    2019年2月有28天
    --------------------------------
    Process exited after 4.642 seconds with return value 0
    请按任意键继续. . .
    */ 
    

    4.简单计算器

    /*
        __author__ ='xiaofeizhang'
        函数作用:简单计算器 
    */
    
    #include <stdio.h>
    int main(void){
        float a, b;
        int symbol;
        printf("请输入第一个操作数:");
        scanf("%f", &a);
        printf("请输入第二个操作数:");
        scanf("%f", &b);
        printf("请输入操作符\n");
        printf("1: 为乘法 *\n");
        printf("2: 为除法 /\n");
        printf("3: 为加法 +\n");
        printf("4:为减法 -\n");
        printf("请输入:"); 
        scanf("%d", &symbol);  //找问题,找了半天,最后才发现是scanf函数输入格式有问题,记住这个取地址符号& 
        
        switch(symbol){
            case 1: printf("结果为:%f", a*b); break; 
            case 2: printf("%f 除以 %f 的结果为:%f\n", a, b, a/b); break;
            case 3: printf("%f 加上 %f 的结果为:%f\n", a, b, a+b); break;
            case 4: printf("%f 减去 %f 的结果为:%f\n", a, b, a-b); break;
            default: printf("输入的操作符可能有些问题,请检查后重新输入"); 
        } 
        return 0;
    }
    
    /*
    请输入第一个操作数:2
    请输入第二个操作数:3
    请输入操作符
    1: 为乘法 *
    2: 为除法 /
    3: 为加法 +
    4:为减法 -
    请输入:3
    2.000000 加上 3.000000 的结果为:5.000000
    
    --------------------------------
    Process exited after 8.262 seconds with return value 0
    请按任意键继续. . .
    
    */ 
    

    5.判定一个数字能否被7整除

    /*
        __author__ ='xiaofeizhang'
        函数作用: 判定一个数字能否被7整除
    */
    #include <stdio.h>
    int main(void){
        int num;
        printf("请输入一个正数:"); 
        scanf("%d", &num); 
        // 输入的字符串中如果含有数字和字母,输入函数会从第一位开始寻找数字,找到就输出,找不到就截止对应 
        // 如果首位为字母,直接输出0 
        if (num%7==0 && num%11==0){
            printf("输入的数值为:%d, 该数能否被7或者11整除:Yes\n", num); 
        }
        else{
            printf("输入的数值为:%d, 该数能否被7或者11整除:No\n", num);
        }
        return 0;
    }
    
    /*
    请输入一个正数:18
    输入的数值为:18, 该数能否被7或者11整除:No
    
    --------------------------------
    Process exited after 2.748 seconds with return value 0
    请按任意键继续. . .
    */
    

    6.判断一个数是否为整数

    /*
        __author__ ='xiaofeizhang'
        函数作用: 判断一个数是否为整数
    */
    
    #include <stdio.h>
    bool check(const char *p) {
        if(p == NULL) 
            return 0;
        else {
            while(*p != '\0') {
                if(*p <= '9' && *p++ >= '0')
                    continue;
                else 
                    return 0;
            }
        }
        return 1;
    }
    
    
    int main() 
    {
        bool count;
        bool check(const char *p);
        count = check("123456.");
        if (count){
            printf("输入数据的类型为数值类型");
        }
        else {
            printf("输入的类型不为数值类型");
        }
        return 0; 
    } 
    
    /*
    输入的类型不为数值类型
    --------------------------------
    Process exited after 0.0212 seconds with return value 0
    请按任意键继续. . .
    */
    

    7.求解二元一次方程的解

    /*
        __author__ ='xiaofeizhang'
        函数作用: 求解二元一次方程的解
    */
    
    #include <stdio.h>
    #include <math.h>
    int main(void){
        float a, b, c, delta;
        float x1, x2;
        printf("请输入系数a: "); 
        scanf("%f", &a);
        printf("请输入系数b: "); 
        scanf("%f", &b);
        printf("请输入系数c: "); 
        scanf("%f", &c);
    //  a = 1; b= 2; c=1;
        if (a > 0 || a<0 ){
            delta = b*b - 4*a*c;
            printf("delta的值为:%lf\n", delta);
            if (delta<0){
                printf("该方程无解"); 
            } 
            else if (delta==0){
                x1 = -b / (2 * a); 
                printf("该方程有两个相同的解, %f, %f\n", x1, x1);
            }
            else {
                x1 = (-b + sqrt(delta)) / (2 * a); 
                x2 = (-b - sqrt(delta)) / (2 * a);
                printf("该方程有两个不相同的解,解一为:%f, 解二为:%f\n", x1, x2); 
            }
    
        }
        else{
            printf("这不是一个二元一次方程"); 
        }
        
        return 0;
    } 
    
    /*
    请输入系数a: 2
    请输入系数b: 4
    请输入系数c: 1
    delta的值为:8.000000
    该方程有两个不相同的解,解一为:-0.292893, 解二为:-1.707107
    
    --------------------------------
    Process exited after 4.65 seconds with return value 0
    请按任意键继续. . .
    */
    

    8.确定一个正数的位数以及反转

    /*
        __author__ ='xiaofeizhang'
        函数作用: 确定一个正数的位数以及反转
    */
    
    #include <stdio.h>
    #include<string.h>
    
    int main(void){
        int symbol, symbol_copy, len=0, symbol_reverse=0, tmp;
        printf("请输入一个位数不多于4位的正整数:");
    //  scanf("%c", &symbol); // strlen函数为 返回字符串的长度     
    //  len = strlen(symbol);
        scanf("%d", &symbol);
         symbol_copy = symbol;
        while (symbol)
        {
            tmp = symbol % 10;
            symbol_reverse = symbol_reverse * 10 + tmp;
            symbol = symbol / 10;
            len++;
        }
        printf("%d 的位数为 %d\n", symbol_copy, len);
        printf("%d这个序列的反序列为: %d", symbol_copy, symbol_reverse);
    } 
    
    /*
    请输入一个位数不多于4位的正整数:399
    399 的位数为 3
    399这个序列的反序列为: 993
    --------------------------------
    Process exited after 4.271 seconds with return value 0
    请按任意键继续. . .
    */
    

    9.使用随机函数

    /*
        __author__ ='xiaofeizhang'
        函数作用: 使用随机函数
    */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main(void){
        int num, rnd;
        srand(time(NULL)); //srand 返回的是随机数序列, time(NULL)返回的是从1970/1/1/0/0/0到当前时间的秒数
        printf("已经过去多少%d秒了\n", time(NULL)); 
    //  rnd = rand(); //该随机函数确实可以生成一个随机数,该数的范围为0~Rand_max之间,但是时伪随机数 
        rnd = rand()%100+1; //该随机数的范围为1~100之间 
        printf("预设值为:%d\n", rnd);
        printf("猜猜看(1-100之间):");
        scanf("%d", &num);
        if (num>rnd){
            printf("猜大了哟"); 
        } 
        else if (num<rnd){
            printf("猜小了哟"); 
        }
        else{
            printf("恭喜你,猜对了");
        } 
        return 0;
    }
    
    /*
    已经过去多少1546506166秒了
    预设值为:16
    猜猜看(1-100之间):2
    猜小了哟
    --------------------------------
    Process exited after 6.061 seconds with return value 0
    请按任意键继续. . .
    */
    

    10.输入三个数,并按照从小到大顺序排列

    /*
        __author__ = 'xiaofeizhang'
        函数作用:输入三个数,并按照从小到大的顺序排列 
    */
    #include <stdio.h>
    bool check(const char *p) {
        if(p == NULL) 
            return 0;
        else {
            while(*p != '\0') {
                if(*p <= '9' && *p++ >= '0')
                    continue;
                else 
                    return 0;
            }
        }
        return 1;
    }
    
    
    int main() 
    {
        int a, b, c;
        int new_1, new_2, new_3; 
        bool count;
        bool check(const char *p);
        printf("请输入a:\n"); 
        scanf("%d", &a);
        printf("请输入b:\n"); 
        scanf("%d", &b);
        printf("请输入c:\n"); 
        scanf("%d", &c);
        if (a>=b && a>=c){
            new_1 = a;
            if (b>c){
                new_2 = b;
                new_3 = c;
            }
            else {
                new_2 = c;
                new_3 = b;
            } 
        }
        
        if (b>=a && b>=c){
            new_1 = b;
            if (a>=c){
                new_2 = a;
                new_3 = c;
            }
            else {
                new_2 = c;
                new_3 = a;
            } 
        } 
        
        if (c>=a && c>=b){
            new_1 = c;
            if (a>=b){
                new_2 = a;
                new_3 = b;
            }
            else {
                new_2 = b;
                new_3 = a;
            } 
        }
        
        printf("这组数据从小到大为:%d, %d, %d\n",  new_3, new_2, new_1);
        
        count = check("12345.6");
        if (count){
            printf("输入数据的类型为数值类型");
        }
        else {
            printf("输入的类型不为数值类型");
        }
        return 0; 
    } 
    
    /*
    请输入a:
    123
    请输入b:
    321
    请输入c:
    456
    这组数据从小到大为:123, 321, 456
    输入的类型不为数值类型
    --------------------------------
    Process exited after 5.888 seconds with return value 0
    请按任意键继续. . .
    
    */ 
    

    11.自动售卖机

    /*
        __author__ = 'xiaofeizhang'
        函数作用:自动售卖机 
    */
    
    #include <stdio.h>
    int main(void){
        int choice;
        printf("  ***** 自动售卖机清单 *****\n");
        printf("  ***** 1. 瓜子        *****\n"); 
        printf("  ***** 2. 花生        *****\n");
        printf("  ***** 3. 爆米花      *****\n");
        printf("  ***** 4. 可乐        *****\n");
        printf("  ***** 5. 雪碧        *****\n");
        printf("  ***** 6. 果汁        *****\n");
        printf("  ***** 7. 咖啡        *****\n");
        printf("请输入你想购买的物品序号(1-7):\n");
        scanf("%d", &choice);
        switch (choice){
            case 1: printf("这是你购买的瓜子\n"); break; 
            case 2: printf("这是你购买的花生\n"); break;
            case 3: printf("这是你购买的爆米花\n"); break;
            case 4: printf("这是你购买的可乐\n"); break;
            case 5: printf("这是你购买的雪碧\n"); break;
            case 6: printf("这是你购买的果汁\n"); break;
            case 7: printf("这是你购买的咖啡\n"); break;
            default: printf("你下的单有问题,请检查后,在重新下单\n"); 
        } 
        return 0;
    } 
    
    /*
      ***** 自动售卖机清单 *****
      ***** 1. 瓜子        *****
      ***** 2. 花生        *****
      ***** 3. 爆米花      *****
      ***** 4. 可乐        *****
      ***** 5. 雪碧        *****
      ***** 6. 果汁        *****
      ***** 7. 咖啡        *****
    请输入你想购买的物品序号(1-7):
    6
    这是你购买的果汁
    
    --------------------------------
    Process exited after 3.891 seconds with return value 0
    请按任意键继续. . .
    
    */ 
    

    12.字符转换

    /*
        __author__ = 'xiaofeizhang'
        函数作用:字符转换
    */
    
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void) {
        char symbol, symbol_change;
        printf("请输入要转化的内容(大写字母,小写字母,数字):");
        symbol = getchar();
        if ('A'<=symbol && symbol<='Z'){
            symbol_change = symbol + 32;
            printf("本次输入的字符为:%c\n", symbol);
            printf("转化以后的字符为:%c\n", symbol_change); 
        }
        else if ('0'<=symbol && symbol<='9'){
            symbol_change = symbol-48;
            printf("本次输入的字符为:%c\n", symbol);
            printf("转化以后的字符为:%d\n", symbol_change); 
        }
        else if ('a'<=symbol && symbol<='z'){
            symbol_change = symbol - 32;
            printf("本次输入的字符为:%c\n", symbol);
            printf("转化以后的字符为:%c\n", symbol_change); 
        }
        else {
            printf("输入的字符可能不在本次转化的考察范围之内\n");
            exit(0); 
        }
        
        return 0;
    }
    
    /*
    请输入要转化的内容(大写字母,小写字母,数字):j
    本次输入的字符为:j
    转化以后的字符为:J
    
    --------------------------------
    Process exited after 3.495 seconds with return value 0
    请按任意键继续. . .
    
    */
    

    相关文章

      网友评论

          本文标题:C语言练习:if语句

          本文链接:https://www.haomeiwen.com/subject/rdheictx.html