您的位置:首页 > 其它

输入10个数,找出出现次数最多的数 (如果多个并列,则按数字出现顺序分别输出)

2014-12-28 11:00 316 查看
输入10个数,找出出现次数最多的数
(如果多个并列,则按数字出现顺序分别输出)

比如:

输入:1 2 2 3 4 5 6 7 8 9

输出:2

算法:

(1)
利用双层循环, 每一个元素都与后面一个元素比较,
如果两者相同, 则该元素次数+1,

(2)
以上的算法中两个相同的元素的次数是一样的, 优化如下,
比较两个元素的时候, 如果两者相等,
则该元素次数+1,
后面的元素次数设置为0,
比较的时候再判断这个元素是否已经比较

#include <stdio.h>

int main(int argc,const char *argv[])
{
int a[10];
int count[10];
for (int i=0; i<10; i++) {
scanf("%d", &a[i]);
count[i]=1;
}

for (int i=0; i<10; i++) {
if (count[i]) {
for (int j=i+1; j<10; j++) {
if (a[j]==a[i]) {
count[i]++;
count[j]=0;
}
}
}
}
// for (int i=0; i<10; i++) {
// printf("%d ", count[i]);
// }
//找最大值
int max = count[0];
for (int i=0; i<10; i++) {
if (max<count[i]) {
max=count[i];
}
}
//查找cnt最大值对应的数
for (int i=0; i<10; i++) {
if (max==count[i]) {
printf("%d ", a[i]);
}
}
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐