题目要求一个出现超过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; }