c语言题目如下: 求c语言高手编一个程序,题目要求如下: 输入有多组数据。 每组数据两行。 第一行
c语言题目如下:求c语言高手编一个程序,题目要求如下:输入有多组数据。每组数据两行。第一行包含一个正整数n(小于等于10000),代表会员人数。第二行包含n个正整数(小于...
c语言题目如下:
求c语言高手编一个程序,题目要求如下:
输入有多组数据。
每组数据两行。
第一行包含一个正整数n(小于等于10000),代表会员人数。
第二行包含n个正整数(小于等于10000),代表各会员AC的题数。
输出
对应每组数据,如果超过一半(不包括一半)的会员AC的题数相同,则输出这个题数,否则输出0。
样例输入
7
14 36 14 14 14 3 8
10
56 56 56 56 3 35 35 8 77 56
样例输出
14
0
下面是我写的代码:
#include <stdio.h>
int main()
{ int n,i,j,a[10001],s,sum, k[10001]={0};
while (scanf("%d",&n)!=EOF)
{ s=0;
for (i=0;i<n;i++)
{scanf ("%d",&a[i]);}
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
{ if (a[i]==a[j])
k[i]++; }
if (k[i]>s)
{s=k[i];sum=a[i];}}
if (2*s>n)
printf("%d\n",sum);
else printf("0\n");
}
}
为什么在执行第一遍while的时候正确,而当执行以后再while的时候输出的结果就错误呢? 展开
求c语言高手编一个程序,题目要求如下:
输入有多组数据。
每组数据两行。
第一行包含一个正整数n(小于等于10000),代表会员人数。
第二行包含n个正整数(小于等于10000),代表各会员AC的题数。
输出
对应每组数据,如果超过一半(不包括一半)的会员AC的题数相同,则输出这个题数,否则输出0。
样例输入
7
14 36 14 14 14 3 8
10
56 56 56 56 3 35 35 8 77 56
样例输出
14
0
下面是我写的代码:
#include <stdio.h>
int main()
{ int n,i,j,a[10001],s,sum, k[10001]={0};
while (scanf("%d",&n)!=EOF)
{ s=0;
for (i=0;i<n;i++)
{scanf ("%d",&a[i]);}
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
{ if (a[i]==a[j])
k[i]++; }
if (k[i]>s)
{s=k[i];sum=a[i];}}
if (2*s>n)
printf("%d\n",sum);
else printf("0\n");
}
}
为什么在执行第一遍while的时候正确,而当执行以后再while的时候输出的结果就错误呢? 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询