• C语言经典例题-20


    1.判断字母

    题目描述

    从键盘任意输入一个字符,编程判断是否是字母(包括大小写)。

    输入描述:

    多组输入,每行输入包括一个字符。

    输出描述:

    针对每行输入,输出该字符是字母(YES)或不是(NO)。

    输入:

    H

    9

    输出:

    YES

    NO

    参考代码

    #include 
    #include 
    
    int main()
    {
        int ch = 0;
        while ((ch = getchar()) != EOF)
        {
            if (isalpha(ch))
            {
                printf("YES");
            }
            else
            {
                printf("NO");
            }
            getchar();
            printf("\n");
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    2.2的n次方计算

    题目描述:

    不用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算。

    输入描述:

    多组输入,每一行输入整数n(0 <= n < 31)。

    输出描述:

    针对每组输入输出对应的2的n次方的结果。

    输入:

    2

    10

    输出:

    4

    1024

    参考代码:

    #include 
    
    int main()
    {
        int n = 0;
        while (scanf("%d", &n) != EOF )
        {
            n = 1 << n;
            printf("%d\n", n);
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    3.争夺前五名

    题目描述:

    期中考试开始了,大家都想取得好成绩,争夺前五名。从键盘输入n个学生成绩(不超过40个),输出每组排在前五高的成绩。

    输入描述:

    两行,第一行输入一个整数,表示n个学生(>=5),第二行输入n个学生成绩(整数表示,范围0~100),用空格分隔。

    输出描述:

    一行,输出成绩最高的前五个,用空格分隔。

    输入:

    6

    99 45 78 67 72 88

    输出:

    99 88 78 72 67

    参考代码:

    //方法一
    #include 
    
    int main()
    {
        int n = 0;
        int i = 0;
        int score[40] = { 0 };
        scanf("%d", &n);
        for (i = 0; i < n; i++)
        {
            scanf("%d", &score[i]);
        }
    
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < n-i-1; j++)
            {
                if (score[j + 1] > score[j])
                {
                    int tmp = score[j];
                    score[j] = score[j + 1];
                    score[j + 1] = tmp;
                }
            }
        }
    
        for (i = 0; i < 5; i++)
        {
            printf("%d ", score[i]);
        }
        return 0;
    }
    
    //方法二
    #include 
    #include 
    
    int cmp(const void* e1, const void* e2)
    {
        return *(int*)e2 - *(int*) e1;
    }
    
    int main()
    {
        int n = 0;
        int i = 0;
        int score[40] = { 0 };
        scanf("%d", &n);
        for (i = 0; i < n; i++)
        {
            scanf("%d", &score[i]);
        }
    
        qsort(score, n, 4, cmp);
    
        for (i = 0; i < 5; i++)
        {
            printf("%d ", score[i]);
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    4.及格分数

    题目描述:

    KK想知道他的考试分数是否通过,请帮他判断。从键盘任意输入一个整数表示的分数,编程判断该分数是否在及格范围内,如果及格,即:分数大于等于60分,是输出“Pass”,否则,输出“Fail”。

    输入描述:

    多组输入,每行输入包括一个整数表示的分数(0~100)。

    输出描述:

    针对每行输入,输出”Pass" 或"Fail”。

    示例1

    输入:

    94

    输出:

    Pass

    示例2

    输入:

    44

    输出:

    Fail

    参考代码:

    #include 
    
    int main()
    {
        int score = 0;
        while (scanf("%d", &score) != EOF)
        {
            if (score >= 60)
            {
                printf("Pass\n");
            }
            else
            {
                printf("Fail\n");
            }
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    5.最高分数

    题目描述:

    KK参加了语文、数学、外语的考试,请帮他判断三科中的最高分。从键盘任意输入三个整数表示的分数,编程判断其中的最高分。

    输入描述:

    多组输入,每行输入包括三个整数表示的分数(0~100),用空格分隔。

    输出描述:

    针对每行输入,输出为一行,即三个分数中的最高分。

    输入:

    94 98 99

    100 88 60

    输出:

    99

    100

    参考代码:

    #include 
    
    int main()
    {
        int s1 = 0;
        int s2 = 0;
        int s3 = 0;
        int max = 0;
        while (~scanf("%d %d %d", &s1, &s2, &s3))
        {
            max = s1 > s2 ? s1 : s2;
            max = max > s3 ? max : s3;
            printf("%d\n", max);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    Java基础进阶多线程-线程安全和synchronized关键字
    [每周一更]-(第22期):什么是gRPC?
    关于js_节流的介绍和简单的使用
    TikTok 推荐引擎强大的秘密
    Linux
    python3 可变对象与不可变对象
    Spring和Spring Boot的区别
    详解AUTOSAR:AUTOSRA软件架构(理论篇—2)
    有名管道-
    TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
  • 原文地址:https://blog.csdn.net/zhongziqia/article/details/138013385