初学者c语言编程问题。

7-3 求整数序列中出现次数最多的数(15 分)
本题要求统计一个整型序列中出现次数最多的整数及其出现次数。
输入格式:
输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。
输出格式:
在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。
输入样例:
10 3 2 -1 5 3 4 3 0 3 2
输出样例:
3 4

我想到一个笨拙的办法,就是先从大到小排序,然后再一一比较

东拼西凑整合了这段代码,基本能满足你说的要求,有一个bug就是当遇到两个数的个数相同时,
输出的是首先出现的那个数,这个你可以仔细分析后完善一下。

#include <stdio.h>
void main()
{
    int a[100]      = {0};
    int b[100]      = {0};
    int count[100]  = {0};
    int len = 0,max =0,n = 0;
    int i =0,j = 0;

    do
    {
        scanf("%d",&a[i]);
        i++;
    }while(getchar() != '\n');

    n = i;
    for(i=0;i<n;i++)
    {
        for(j=0;j<len;j++)
        {
            if(a[i]==b[j])
            {
                count[j]++;
                break;
            }
        }
        if(j==len)
        {
            b[len]=a[i];
            count[len]=1;
            len++;
        }
    }
    for(j=1;j<len;j++)
        if(count[j]>count[max])
            max=j;
    printf("max=%d,times=%d\n",b[max],count[max]);  
}

#includeint main(){ static int M=0; int a1[30],a2[30],a3[30]={0},i=0,j=0,k,N,temp; do{ scanf("%d",&a1[i]); i++; }while(a1[i-1]!=-1); N=i; a2[0]=a1[0]; for(i=0;i<N-1;i++){ for(k=0;k<=M;k++){ if(a1[i]==a2[k]) break; else{ if(k==M){ a2[k+1]=a1[i]; M++; } } } } for(j=0;j<=M;j++){ for(i=0;i<N;i++){ if(a2[j]==a1[i]){ a3[j]++; } } } temp=0; for(i=0;i<=M;i++){ if(a3[temp]<a3[i]) temp=i; printf("%d--%d次\n",a2[i],a3[i]); } printf("\n出现次数最多的数为:%d\n该数出现了%d次",a2[temp],a3[temp]); printf("\n"); return 0;}

正确!