题目描述
红包比拼结束以后,小科的爸爸妈妈为了缓解输了的同学们的心情,决定根据每个小朋友年前集福的数量,奖励不同数量的棒棒糖。这又挑起了同学们的激情,这个集福小游戏的规则为:一共有5种不同的福卡,集满5种不同福卡即可兑换一个棒棒糖,福卡用1~5的编号来表示。
总共有n个小朋友参与集福,每个小朋友都集了很多张福卡,现在小科想知道自己能兑换的棒棒糖个数在所有小朋友中兑换的棒棒糖个数的排名(相同的个数算同一名次)。
输入格式
第一行,一个整数n表示包括小科在内的集卡的人数。
第二行,第一个整数m表示小科集的福卡数,紧接着是m个用空格隔开的整数x即小科集到的福卡序号。
接下来n-1行,每行第一个整数m表示其他小朋友集的福卡数,紧接着是m个用空格隔开的整数x即其他小朋友集到的福卡序号。
输出格式
输出为一行,一个正整数k代表小科的排名。
输入 输出样列
3
10 1 2 3 4 5 1 2 3 4 5
5 1 2 3 4 5
15 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 2
#我的代码输入第二行数组就报错了,实在是不知道该怎么解决了,请大家帮我看一下,谢谢,如果有其他方法,也可以的
#include <stdio.h>
int max(int x,int b[10]);
int main()
{
int n,i,j,m,a[10],d[10];
int big;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%d",&a[i]);
scanf("\n");
}
d[i]=max(m,a);
}
int final;
final=d[0];
for(j=1;j<n;j++)
{
if(final<d[j])
{
final=d[j];
}
}
printf("%d",final);
return 0;
}
int max(int x,int b[10])
{
int j,c[5];
for(j=0;j<x;j++)
{
if(b[j]==1)
{c[0]++;continue;}
if(b[j]==2)
{c[1]++;continue;}
if(b[j]==3)
{c[2];continue;}
if(b[j]==4)
{c[3];continue;}
if(b[j]==5)
{c[4]++;continue;}
}
int min=c[0],i;
for(i=1;i<5;i++)
{
if(min>c[i])
{
min=c[i];
}
}
return c[i];
}