本帖最后由 jackz007 于 2021-1-29 18:13 编辑 #include <stdio.h>
int main(void)
{
int i , j , k , n , m , t , arr[100] , dat[100] , cnt[100] ;
scanf("%d" , & n) ;
for(i = 0 ; i < n ; i ++) scanf("%d" , & arr[i]) ; // 读入数据
for(dat[0] = arr[0] , i = m = 1 ; i < n ; i ++) { // 把 arr[n] 中总共 m 个不同数据存入 dat[m] 中
for(k = 0 ; k < m && arr[i] != dat[k] ; k ++) ; // 把 arr[n] 中总共 m 个不同数据存入 dat[m] 中
if (k == m) dat[m ++] = arr[i] ; // 把 arr[n] 中总共 m 个不同数据存入 dat[m] 中
} // 把 arr[n] 中总共 m 个不同数据存入 dat[m] 中
for(i = 0 ; i < m - 1 ; i ++) { // 对 dat[] 按从小到大的顺序排序
for(j = i + 1 ; j < m ; j ++) { // 对 dat[] 按从小到大的顺序排序
if(dat[i] > dat[j]) { // 对 dat[] 按从小到大的顺序排序
t = dat[i] ; // 对 dat[] 按从小到大的顺序排序
dat[i] = dat[j] ; // 对 dat[] 按从小到大的顺序排序
dat[j] = t ; // 对 dat[] 按从小到大的顺序排序
} // 对 dat[] 按从小到大的顺序排序
} // 对 dat[] 按从小到大的顺序排序
} // 对 dat[] 按从小到大的顺序排序
for(i = 0 ; i < m ; i ++) cnt[i] = 0 ; // 初始化计数数组 cnt[m]
for(i = 0 ; i < m ; i ++) for(j = 0 ; j < n ; j ++) if(dat[i] == arr[j]) cnt[i] ++ ; // 用 cnt[m] 对 arr[n] 进行不同数值的统计计数
for(k = 0 , i = 1 ; i < m ; i ++) if(cnt[i] > cnt[k]) k = i ; // 找到出现次数的多的次数,k 是索引。
for(i = 0 ; i < m ; i ++) if(cnt[i] == cnt[k]) printf("%d %d\n" , dat[i] , cnt[i]) ; // 把最多次数的数及出现次数统统显示出来
}
|