赤昂DS 2022-03-08 19:49 采纳率: 100%
浏览 28
已结题

寻找众数,其中一个测试点过不了

img

img


#include<stdio.h>
int main(){
int i,j,k,n,temp,a[1000],b[1000],c[1000],N,M;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
b[i]=1;
int flag=0;
for(k=0;k<i;k++){
if(i!=k&&a[i]==a[k])
flag=1;
}
if(flag==0){
for(j=0;j<n;j++){
if(i!=j&&a[i]==a[j]){
b[i]++;
}
}
}
}
for(j=1;j<=n;j++){
for(i=0;i<n-j;i++){
if (b[i]<b[i+1]){
temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
N=b[0];
M=1;
c[0]=a[0];
j=1;
for(i=1;i<n;i++){
N=N+b[i];
}
if(N==n){
printf("-1");
}
else{
for(i=1;i<n;i++){
if(b[0]==b[i]){
M+=1;
c[j]=a[i];
j++;
}
}
for(i=1;i<=M;i++){
for(j=0;j<M-i;j++){
if(c[j]>c[j+1]){
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}
}
}
for(i=0;i<M;i++){
printf("%d ",c[i]);
}
}
return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月16日
    • 修改了问题 3月8日
    • 创建了问题 3月8日