题目要求一个出现超过n/2次的数,如果有序排列必定在中间,所以使用冒泡排序输出中间的数。
#include <stdio.h>
int main(void){
int n;
scanf("%d",&n);
int a[1001];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
int t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
printf("%d",a[n/2]);
return 0;
}

京公网安备 11010502036488号