题目描述
ACM/ICPC比赛涉及的知识点非常多,一个队伍三个人需要能够互补。一个队伍某个知识点的高度是三个人中水平最高的那个人决定。现在给你三个人的每个知识点的水平情况,请计算一下这个队伍的水平。
输入
存在多个样例。每个样例的第一行是一个整数N(3≤N≤100),表示所有知识点的个数。 以后三行为每个人每个知识点的水平情况。水平用A到E表示,一共5级,A最强,E最弱,依次递减。
输出
每个样例输出两行,第一行为一个字符串,一个队伍的各个知识点的水平情况。第二行是5个整数,表示5个级别知识点的个数,每个整数之间有一个空格。
样例输入
3 ABC BBB AAE 4 DDBD DEDC CDDE 0样例输出
AAB 2 1 0 0 0 CDBC 0 1 2 1 0
本题思路读完题目就能得到,就是输入,然后统计。
如果选择先输入完,然后统计的话, 直接用%s输入,不会有其他问题;但是如果选择 边输入变统计的话,用的是 %c,而此时 scanf(" %c"), %c前面要空一个 空格, 这是为了让 scanf读入你的 换行或空格操作。 文章来源:https://www.toymoban.com/news/detail-720764.html
AC代码:文章来源地址https://www.toymoban.com/news/detail-720764.html
#include <stdio.h>
int main()
{
int N;
while ( scanf("%d",&N) != EOF && N != 0)
{
int num[5] = {0};
char grades[5][105];
for (int i = 1; i <= N; i ++) // grades[0]保存最高等级水平,默认设置最低
grades[0][i] = 'G';
for (int i = 1; i <= 3; i ++)
{
for (int j = 1; j <= N; j ++)
{
scanf(" %c",&grades[i][j]);
if (grades[i][j] < grades[0][j])
grades[0][j] = grades[i][j];
}
}
for (int i = 1; i <= N; i ++) // 输出同时统计各水平的个数
{
printf("%c",grades[0][i]);
num[grades[0][i]-'A'] ++;
}
printf("\n%d",num[0]);
for (int i = 1; i <= 4; i ++)
printf(" %d",num[i]);
puts("");
}
return 0;
}
到了这里,关于XTU-OJ 1170-ICPC的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!