1 #include<stdio.h> 2 3 int main(void) 4 { 5 int num[20]; 6 int tem[20] = {0}; 7 int n,i,k = 0; 8 9 scanf("%d", &n); 10 if (n == 0 || n == -1) 11 { 12 return 0; 13 } 14 for (i = 0; i < n; i++) 15 { 16 scanf("%d", &num[i]); 17 } 18 19 tem[k]++; 20 for (i = 1; i < n; i++) //各元素计数 21 { 22 if (num[i] == num[i - 1]) 23 { 24 tem[k]++; 25 } 26 else 27 { 28 tem[++k]++; 29 } 30 } 31 32 int sign = 0; 33 int max = tem[0]; 34 for (i = 1; i < k + 1; i++) //找出最大值 35 { 36 if (tem[i] > max) 37 { 38 max = tem[i]; 39 sign = i; 40 } 41 } 42 43 printf("%d", num[sign+tem[sign]-1]); 44 return 0; 45 }
另一个更厉害的算法,真心佩服,来自https://blog.csdn.net/iamldy/article/details/69214182
1 #include<stdio.h> 2 3 int a[100000]; 4 5 int main() 6 { 7 int n; 8 int i=0; 9 int m=0; 10 ; 11 12 scanf("%d",&n); 13 if(n>0&&n<=20) 14 { 15 16 17 for(;i<n;i++) 18 { 19 scanf("%d",&m); 20 a[m]++; 21 } 22 int s=0; 23 int g; 24 for(i=0;i<100000;i++) 25 { 26 if(a[i]>s) 27 { 28 s=a[i]; 29 g=i; 30 } 31 32 } 33 printf("%d",g); 34 } 35 return 0; 36 }
原文:https://www.cnblogs.com/ZhengLijie/p/12519939.html