开发者社区> 问答> 正文

大神们,程序有什么不完善的请加以斧正

问题描述
  编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。
  输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。
  输出格式:输出只有一行,即出现次数最多的那个元素值。
输入输出样例
样例输入
5
100
150
150
200
250
样例输出
150

#include
int main()
{
int N,i,max=0,sum,ans;
scanf("%d",&N);
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
sum=1;
for(i=0;i<N;i++)
{
if(a[i]==a[i+1])//判断是否相等的个数 
sum++;//从1计数每个相等数的个数 
else
{
if(max<sum)
{
max=sum;
ans=i;
}
sum=1;//重新置1 
}
}
printf("%d\n",a[ans]);
return 0;
} 
评测点序号 评测结果 得分 CPU使用 内存使用 下载评测数据
1 正确 10.00 0ms 1.597MB 输入 输出
2 正确 10.00 0ms 1.597MB VIP特权
3 正确 10.00 0ms 1.597MB VIP特权
4 正确 10.00 0ms 1.597MB VIP特权
5 正确 10.00 0ms 1.597MB VIP特权
6 错误 0.00 0ms 1.597MB VIP特权
7 错误 0.00 0ms 1.597MB VIP特权
8 正确 10.00 0ms 1.597MB VIP特权
9 正确 10.00 0ms 1.597MB VIP特权
10 正确 10.00 0ms 1.601MB VIP特权

展开
收起
a123456678 2016-03-24 10:17:21 2338 0
1 条回答
写回答
取消 提交回答
  • 给你写了一个

     #include<stdio.h>
    int main()
    {
        int N=0, x=0;
        int i;
        scanf("%d",&N);
        int a[20];
        int b[20];
        int n1 = 0;
        for(i=0;i<N;i++)
        {
            scanf("%d", &x);
            int f = 0;
            for (int i = 0; i < n1; i++)
            {
                if (x == a[i]) {b[i]++; f = 1; break;}
            }
            if (!f)
            {
                a[n1++] = x;
                b[n1 - 1] = 1;
            }
        }
        int max = 0;
        for (i = 0; i < n1; i++)
        {
            if (b[i] > b[max]) max = i;
            if (b[i] == b[max] && a[i] < a[max]) max = i;
        }
        printf("%d\n", a[max]);
        return 0;
    } 
    2019-07-17 19:12:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
企业代码安全最佳实践 立即下载
《前端智能化实践》——逻辑代码生成 立即下载
云开发解决方案和代码智能技术 立即下载