版权声明:沉迷代码,难以自拔 https://blog.csdn.net/qq_33846054/article/details/50925791
description
国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛,ACM-ICPC以团队的形式代表各学校参赛,每队由3名队员组成,一个队每做出来一个题该队就会获得该题对应颜色的气球,气球越多就说明该队做的题目越多。当然如果一个颜色的气球越多就说明该气球对应的题也就越简单。现在给你很多很多的颜色的气球,问你那个颜色的气球最多,哈哈,聪明的acmer这题对你肯定很简单吧, just ac it!
input
假设只有6种颜色,green,red,blue,pink,orange,black。输入数据有多组,每组数据开始给出一个整数n代表接下来有n个气球,接下来有n行,每行输入一种颜色,n <= 100,输入以EOF结束。
output
输出个数最多的气球的颜色(题目保证个数最多的气球有且仅有一种颜色)
sample_input
3
green
red
green
5
green
red
blue
red
red
sample_output
green
red
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char a[6][10]={"green","red","blue","pink","orange","black"};
char b[100][10];
int num[6];
int i,n,max,k,j;
while (cin>>n)
{
for (i=0;i<6;i++)
{
num[i]=0;//可以写成memset(num,0,sizeof(num))
}
for (i=0;i<n;i++)
{
scanf ("%s",b[i]);//可以从设定为一维数组在循环中反复使用
for (j=0;j<6;j++)
{
if (strcmp(b[i],a[j])==0)
num[j]++;
}
}
max=-1;
for (i=0;i<6;i++)
if (num[i]>max)
{
max=num[i];
k=i;
}
printf ("%s\n",a[k]);
}
return 0;
}
但是这里最最最奇怪的:
max=a[0]不可以!!!!
只能max=-999什么的可以,那么我就记着吧,数组循环求最大值的时候让max=一个负数。