注册 登录
编程论坛 C语言论坛

程序综合题型

三中小学生 发布于 2022-04-03 21:41, 1476 次点击

9.编写一个程序,对用户输入的任意一组数字,如 { 3, 1,4,7,2,1, 1,2,2},输出其中出现次数最多的数字,并显示其出现次数
2 回复
#2
林月儿2022-04-04 11:48
程序代码:
#include <stdio.h>

int main() {
    int arr[]={3,1,4,7,2,1,1,2,2,2};
    int len=10;
    for(int i=len-1;i>0;i--){
        for(int j=0;j<i;j++){
            if(arr[j]>arr[j+1]){
                arr[j]=arr[j]+arr[j+1];
                arr[j+1]=arr[j]-arr[j+1];
                arr[j]=arr[j]-arr[j+1];
            }
        }
    }
    int k=0,nums[len];
    for(int i=0;i<len;i++){
        if(k==0||arr[k-1]!=arr[i]){
            nums[k]=1;
            arr[k++]=arr[i];
        }else{
            nums[k-1]=nums[k-1]+1;
        }
    }
    int max_num=nums[0],val=arr[0];
    for(int i=0;i<k;i++){
        if(max_num<nums[i]){
            max_num=nums[i];
            val=arr[i];
        }
    }
    printf("%d:%d",val,max_num);

    return 0;
}
#3
不会游泳的虾2022-04-06 16:02
供参考:
程序代码:
//这组数字都是一位数
//{ 3,1,4,7,2,1,1,2,2 }
#include <stdio.h>
int main()
{
    int i, n, a[10] = { 0 };  
    while (scanf("%d", &n) == 1 && n != -1) a[n]++;  //输入 -1 结束输入
    n = a[0];
    for (i = 0; i < 10; i++)
        if (n < a[i]) n = a[i];
    for (i = 0; i < 10; i++)
        if (n == a[i])
            printf("%d %d\n", i, a[i]);
    return 0;
}
1