🔥个人主页:@草莓熊Lotso
🎬作者简介:C++研发方向学习者
📖个人专栏: 《C语言》 《数据结构与算法》《C语言刷题集》
⭐️人生格言:生活是默默的坚持,毅力是永久的享受。
前言:本篇博客是刷题集中的第五篇,题目都是一些比较基础的IO型题目,适合C语言初学者。特别声明一下,这里提供的答案和思路都并非唯一,仅供参考。
目录
1.竞选社长
题目链接:竞选社长_牛客题霸_牛客网
题目描述:
题目示例:
代码演示:
#include <stdio.h>
#include<string.h>
int main()
{
char arr[100]={0};
scanf("%s",arr);
int count1=0;
int count2=0;
int i=0;
while(arr[i]!='0')
{
if(arr[i]=='A')
{
count1++;
}
if(arr[i]=='B')
{
count2++;
}
i++;
}
if(count1>count2)
{
printf("%c",'A');
}
if(count1<count2)
{
printf("%c",'B');
}
if (count1==count2)
{
printf("%c",'E');
}
return 0;
}
题目解析:
- 本题的解法很多,在这里仅提供其中一个作为参考
- 这题根据题目条件来就行了,定义了两个变量count1和count2分别记录A和B的个数,最后通过比较这两个变量来输出对应结果
2.你是天才吗?
题目链接:你是天才吗?_牛客题霸_牛客网
题目描述:
题目示例:
代码演示:
方法1:
#include <stdio.h>
int main()
{
int n=0;
while(scanf("%d",&n)!=EOF)
{
if(n>=140)
{
printf("Genius");
}
}
}
方法2:
#include <stdio.h>
int main()
{
int n=0;
//这种写法是因为scanf读取失败返回EOF,EOF是-1,所以按位取反后的结果是0,0为假,可以让循环停止。
while(~scanf("%d",&n))
{
if(n>=140)
{
printf("Genius");
}
}
}
题目解析
- 关于多组输入的题目,一定要处理好多组数据的输入问题,然后考虑循环如何结束。
- 方法1和方法2,给出了2种多组输入的方法。
3.完美成绩
题目链接: 完美成绩__牛客网
题目描述:
题目示例:
代码演示:
#include <stdio.h>
int main()
{
int a=0;
while (scanf("%d", &a) != EOF) {
if(a>=90&&a<=100)
{
printf("Perfect");
}
}
return 0;
}
题目解析:
- 这题还是一个考察多组输入的题,跟上题一样可以有不同写法,这里就不再次演示了
- 多组输入完后,根据题目要求判断就可以了,很简单
4.及格分数
题目链接:及格分数_牛客题霸_牛客网
题目描述:
题目示例:
代码演示:
#include <stdio.h>
int main()
{
int a=0;
while (scanf("%d", &a) != EOF) {
if(a>=60)
{
printf("Pass\n");
}
else {
printf("Fail\n");
}
}
return 0;
}
题目解析:
- 这个题还是跟前面的一样,考察多组输入,后续的只需要根据题目要求判断就行了
5.判断整数奇偶性
题目链接: 判断整数奇偶性_牛客题霸_牛客网
题目描述:
题目示例:
代码演示:
#include <stdio.h>
int main()
{
int a=0;
while (scanf("%d", &a) != EOF) {
if(a%2==0)
{
printf("Even\n");
}
else {
printf("Odd\n");
}
}
return 0;
}
题目解析:
- 还是老样子,依旧是多组输入,非常的简单
- 再就是判断奇数偶数,我相信这个大家肯定也都会吧,就不在这里讲了
6.最高分数
题目链接:最高分数__牛客网
题目描述:
题目示例:
代码演示:
#include <stdio.h>
int main() {
int arr[3]={0};
for(int i=0;i<3;i++)
{
scanf("%d",&arr[i]);
}
int max=arr[0];
for(int i=0;i<3;i++)
{
if(arr[i]>max)
{
max=arr[i];
}
}
printf("%d",max);
return 0;
}
题目解析:
- 多组输入,每组输入接受3个值,求出最大值,我们这里可以定义max为数组的第一个元素,然后依次比较求出最大的,当然也可以定义max=0,再进行比较求出最大值
7.判断是元音还是辅音
题目链接:判断是元音还是辅音_牛客题霸_牛客网
题目描述:
题目示例:
代码演示:
方法1:
#include <stdio.h>
int main() {
char ch = 0;
char arr[] = "AEIOUaeiou";
//在%c的前面写一个空格会消化掉前面所有的空白字符,然后读取一个字符
while (scanf(" %c", &ch) != EOF)
{
int i = 0;
for (i = 0; i < 10; i++)
{
if (ch == arr[i])
{
printf("Vowel\n");
break;
}
}
if (i == 10)
printf("Consonant\n");
}
return 0;
}
方法2:
#include <stdio.h>
int main()
{
char ch = 0;
char arr[] = "AEIOUaeiou";
while((ch=getchar()) != EOF)
{
int i = 0;
for(i=0; i<10; i++)
{
if(ch == arr[i])
{
printf("Vowel\n");
break;
}
}
if(i == 10)
printf("Consonant\n");
getchar();//去除每个字符后的\n
}
return 0;
}
方法3:
#include <stdio.h>
int main()
{
char ch = 0;
char arr[] = "AEIOUaeiou";
//在%c的后边发给一个'\n',其实在输入时候就会消化掉这个\n字符
//不会为下次留下空白字符的隐患
while(scanf("%c\n", &ch) != EOF)
{
int i = 0;
for(i=0; i<10; i++)
{
if(ch == arr[i])
{
printf("Vowel\n");
break;
}
}
if(i == 10)
printf("Consonant\n");
}
return 0;
}
题目解析:
- 这里判断的部分很简单,主要是要注意多组输入每次 \n 的消化,这里提供了三种方法,大家可以都看看,我个人比较喜欢用第一种
8.判断是不是字母
题目链接:判断是不是字母_牛客题霸_牛客网
题目描述:
题目示例:
代码演示:
#include <stdio.h>
#include<ctype.h>
int main()
{
char ch=0;
while (scanf(" %c", &ch) != EOF) {
if(isalpha(ch))
printf("%c is an alphabet.\n",ch);
else
printf("%c is not an alphabet.\n",ch);
}
return 0;
}
题目解析:
- 本题和上一题一样,三种方法都可以吸收空白字符
- 剩下的就算用 isalpha 这个字母判断函数,前面讲过,也给大家分享过相关博客,这里就不再讲了
往期回顾:
结语: 本篇文章就到此结束了,C语言刷题集专栏中的第五篇的题目主要是在讲一些多组输入需要注意的地方,题目都不是很难,都是比较基础的编程题,非常适合刚学完C语言的朋友们拿来练手,提升自己的代码能力。