C语言 求一批整数中出现最多的个位数字

来源:互联网 发布:斯凯网络 编辑:程序博客网 时间:2024/03/29 21:45

任务描述

给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数123423453456,其中出现最多次数的数字是34,均出现了3次。

功能要求

①输入格式:

输入在第1行中给出正整数NN\le 10001000),在第二行中给出NN个不超过整型范围的正整数,数字间以空格分隔。

②输出格式:

在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。

③输入样例:

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;}

阅读全文
0 0
原创粉丝点击