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

給定一批整數,分析每個整數的每一位數字,求出現次數最多的個位數字。例如給定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>
int main(){
	int n,j,k,i,t,x;
	int b[10];//記錄數字頻率 
	for(i=0;i<10;i++){
		b[i]=0;
	}//b【10】初始化 

	scanf("%d",&n);
		int a[n];

	for(i=0;i<n;i++){//input
		scanf("%d",&a[i]);
	}
	//得到數字的頻率 
	for(j=0;j<n;j++){//對於每個整數
		while(1){//對單一整數的處理 
			if(a[j]/10){
				t=a[j]%10;
				b[t]++;
				a[j]/=10;
				}
			else {
				b[a[j]]++;
				break;
				}
		}
	}
	int max=0; 
	for(i=0;i<10;i++){//得到頻率最大的數字 
		if(b[i]>max){
			max=b[i];
		}
	} printf("%d:",max);
	for(i=0;i<10;i++){
		if(b[i]==max)printf(" %d",i);
	}
	
	return 0;
}

在思路清晰的狀況下,此題不難。

發佈了24 篇原創文章 · 獲贊 7 · 訪問量 6831
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章