C语言经典例题(20) --- 判断字母、2的n次方计算、争夺前五名、及格分数、最高分数

文章目录

1.判断字母

题目描述

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

输入描述:

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

输出描述:

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

输入:

H

9

输出:

YES

NO

参考代码

c 复制代码
#include <stdio.h>
#include <ctype.h>

int main()
{
    int ch = 0;
    while ((ch = getchar()) != EOF)
    {
        if (isalpha(ch))
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
        getchar();
        printf("\n");
    }
    return 0;
}
2.2的n次方计算

题目描述:

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

输入描述:

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

输出描述:

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

输入:

2

10

输出:

4

1024

参考代码:

c 复制代码
#include <stdio.h>

int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF )
    {
        n = 1 << n;
        printf("%d\n", n);
    }
    return 0;
}
3.争夺前五名

题目描述:

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

输入描述:

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

输出描述:

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

输入:

6

99 45 78 67 72 88

输出:

99 88 78 72 67

参考代码:

c 复制代码
//方法一
#include <stdio.h>

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 <stdio.h>
#include <stdlib.h>

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;
}
4.及格分数

题目描述:

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

输入描述:

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

输出描述:

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

示例1

输入:

94

输出:

Pass

示例2

输入:

44

输出:

Fail

参考代码:

c 复制代码
#include <stdio.h>

int main()
{
    int score = 0;
    while (scanf("%d", &score) != EOF)
    {
        if (score >= 60)
        {
            printf("Pass\n");
        }
        else
        {
            printf("Fail\n");
        }
    }
    return 0;
}
5.最高分数

题目描述:

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

输入描述:

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

输出描述:

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

输入:

94 98 99

100 88 60

输出:

99

100

参考代码:

c 复制代码
#include <stdio.h>

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);
    }
}
相关推荐
zyq99101_17 分钟前
DFS算法实战:经典例题代码解析
python·算法·蓝桥杯·深度优先
智者知已应修善业12 分钟前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
广州灵眸科技有限公司14 分钟前
为RK3588注入澎湃算力:RK1820 AI加速卡完整适配与评测指南
linux·网络·人工智能·物联网·算法
qinian_ztc22 分钟前
frida 14.2.18 安装报错解决
算法·leetcode·职场和发展
hhh3u3u3u26 分钟前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
AI应用实战 | RE27 分钟前
012、检索器(Retrievers)核心:从向量库中智能查找信息
人工智能·算法·机器学习·langchain
凤年徐29 分钟前
C++手撕红黑树:从0到200行,拿下STL map底层核心
c++·后端·算法
泛凡(Linyongui)29 分钟前
PY32F002B实践之二--宠物腹背理疗仪项目介绍及头文件解析
c语言·keil·py32·32位单片机·腹背理疗仪项目实践
Thomas.Sir32 分钟前
AI 医疗之罕见病/疑难病辅助诊断系统从算法到实现【表型驱动与知识图谱推理】
人工智能·算法·ai·知识图谱
tankeven1 小时前
动态规划专题(03):区间动态规划从原理到实践(未完待续)
c++·算法·动态规划