C語言 求一批整數中出現最多的個位數字
阿新 • • 發佈:2019-01-28
任務描述
給定一批整數,分析每個整數的每一位數字,求出現次數最多的個位數字。例如給定3個整數1234、2345、3456,其中出現最多次數的數字是3和4,均出現了3次。
功能要求
①輸入格式:
輸入在第1行中給出正整數NN(\le 1000≤1000),在第二行中給出NN個不超過整型範圍的正整數,數字間以空格分隔。
②輸出格式:
在一行中按格式“M: n1 n2 ...”輸出,其中M是最大次數,n1、n2、……為出現次數最多的個位數字,按從小到大的順序排列。數字間以空格分隔,但末尾不得有多餘空格。
③輸入樣例:
3
1234 2345 3456
④輸出樣例:
3: 3 4。
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int buffer[10] = { 0 }; int result[10] = { 0 }; int max = 0; int index = 0; char *data; int N, i; scanf("%d", &N); getchar(); data = (char*)malloc(sizeof(char) * 6 * N); gets(data); for (i = 0; i < strlen(data); i++) { if (data[i] != ' '&& data[i] != '\n') { buffer[data[i] - '0']++; } } for (i = 0; i < 10; i++) { if (max < buffer[i]) { max = i; } } printf("%d: ", buffer[max]); result[index] = max; index++; for (i = 0; i < 10; i++) { if (i != max) { if (buffer[i] == buffer[max]) { result[index] = i; index++; } } } for (i = 0; i < index; i++) { printf("%d ", result[i]); } system("pause"); return 0; }