永发信息网

C语言数据频率问题: 输入格式: 输入有多组数据. 每组数据两行. 第一行包含一个正整数n(小于等

答案:1  悬赏:0  手机版
解决时间 2021-01-04 12:17
  • 提问者网友:雨不眠的下
  • 2021-01-04 01:30
C语言数据频率问题: 输入格式: 输入有多组数据. 每组数据两行. 第一行包含一个正整数n(小于等
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
这道题我已经做出来了,我的基本想法就是拿出一个数来与全部数字逐个比较,碰见相同的就执行k++来记录相同数的个数,语言一个for循环嵌套一个for循环,但是这样很耗时间,因为如果有10000个互不相同的数,那一共需要循环一亿次,现在我想找高手帮写个效率高的程序.谢谢各路大神!

最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-01-04 01:39

#include stdio.h
#include malloc.h
#include stdlib.h

void main( ){
int *count;
int n, a[10000], i, Max = -1, max;
scanf(%d, &n);
for(i = 0; i < n; i++){
scanf(%d, &a[i]);
if(a[i] > Max) Max = a[i];
}
count = (int*) malloc ((Max + 1) * sizeof(int));
for(i = 0; i = (n / 2 + 1))
printf(%d\n, max);
else printf(0\n);
free(count);
}


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯