實驗7-1-6 求一批整數中出現最多的個位數字 (20分)

2020-08-09 08:31:40

給定一批整數,分析每個整數的每一位數位,求出現次數最多的個位數字。例如給定3個整數1234、2345、3456,其中出現最多次數的數位是3和4,均出現了3次。

輸入格式:
輸入在第1行中給出正整數N(≤1000),在第二行中給出N個不超過整型範圍的非負整數,數位間以空格分隔。

輸出格式:
在一行中按格式「M: n1 n2 …」輸出,其中M是最大次數,n1、n2、……爲出現次數最多的個位數字,按從小到大的順序排列。數位間以空格分隔,但末尾不得有多餘空格。

輸入樣例:
3
1234 2345 3456
輸出樣例:
3: 3 4

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main()
{	
	int n, i, num[10] = {0}, max = -1;
    scanf("%d", &n);
    int arr[n];
    for ( i = 0; i < n; i++)
        scanf("%d", &arr[i]);
    for ( i = 0; i < n; i++){
        if (arr[i] == 0)
            num[0]++;
        while(arr[i]){
            num[arr[i] % 10]++;
            arr[i] /= 10;
        }
    }
    for ( i = 0; i < 10; i++){
        if (num[i] > max)
            max = num[i];
    }
    printf("%d:", max);
    for ( i = 0; i < 10; i++){
        if (num[i] == max)
            printf(" %d", i);
    }
	
	return 0;
}