输入10个整数,把所有不同的数及其对应出现次数都打印出来(c语言),我写的逢8必过。。。?

#include
#include
#define Size 10
//数组num中放了整数,输出所有不同的数据值及其在该数组中各自出现的次数
struct data
{
int a;
int count;
};
int main()
{
int i,j,k,m,n;
int a=0;
int max=Size;
int count=0;
int num[Size];
int st[Size][2];
printf("请初始化一维数组:");
for(i=0;i<Size;i++)
{
scanf("%d",&num[i]);
}
for(j=0;j<Size;j++)
{
int flag=0;
for(m=0;m<Size;m++)
{
if(num[j]==st[m][0])
{
max--;
flag=1;
break;
}
}
if(flag)
{
continue;
}
for(k=j;k<Size;k++)
{
if(num[j]==num[k])
{
st[a][0]=num[j];
count++;
}

    }
    st[a][1]=count;
    a++;
    count=0;
}
for(n=0;n<max;n++)
{
    printf("%d出现的次数是%d\n",st[n][0],st[n][1]);
}

}
图片说明图片说明

代码没整合,懒得看了,。,,,

看结果也没有啥问题。。。不知道楼主要问啥。。

我试了一下你的代码,你把中间部分代码删了不就行了嘛?

#include <stdio.h>
#include <stdlib.h>
#define Size 10
//数组num中放了整数,输出所有不同的数据值及其在该数组中各自出现的次数
struct data
{
    int a;
    int count;
};
int main()
{
    int i,j,k,m,n;
    int a=0;
    int max=Size;
    int count=0;
    int num[Size];
    int st[Size][2];
    printf("请初始化一维数组:");
    for(i=0; i<Size; i++)
    {
        scanf("%d",&num[i]);
    }
    for(j=0; j<Size; j++)
    {
        for(k=j; k<Size; k++)
        {
            if(num[j]==num[k])
            {
                st[a][0]=num[j];
                count++;
            }
        }
        st[a][1]=count;
        a++;
        count=0;
    }
    for(n=0; n<max; n++)
    {
        printf("%d出现的次数是%d\n",st[n][0],st[n][1]);
    }
} 

结果有问题,88出现了,但是代码太乱了,不想看

很灵异的事件,我的测试结果是正常的,(代码没有任何修改)。
图片说明

可以注销或者重启电脑,然后点击Build ----- Rebuild Solutions菜单,重新试试。

如果对您有帮助,请采纳答案好吗,谢谢!