题目描述
输入一个长度小于等于256,大于0,且只包含数字的字符串,统计其中出现最多数字的个数。
若有多个数字的个数并列最多,取最先出现的数字。
输出该数字及个数做成的字符串,格式:"数字+逗号+个数"。
输入
输入一个长度小于等于256,大于0,且只包含数字的字符串
输出
输出该数字及个数做成的字符串,格式:"数字+逗号+个数"。注意逗号为英文半角
样例输入
463618964
样例输出
6,3
解答:
#include <iostream> using namespace std; int main() { int i = 0; int j = 0; int n_Len = 0; //二维数组用来保存10个数字,按照出现的顺序保存 //第一行保存个数,第二行保存数字 int b[2][10] = {{0},{0}}; int temp[2] = {0}; char pInput[256]={0}; cin.get(pInput,100); //统计输入的数字的个数 while (pInput[j]!= '\0') { n_Len++; j++; } //将数字按照出现的顺序存放在二维数组中 for (j = 0;j<n_Len;j++) { for (i = 0;i<10;i++) { if (b[0][i]==0) { b[1][i] = pInput[j]-48; b[0][i] = b[0][i]+1; break; } else if ((pInput[j]-48) ==b[1][i]) { b[0][i] = b[0][i]+1; break; } } } //挑出最先出现的,个数最多的数字 for (i = 0;i<10;i++) { if (temp[0]<b[0][i]) { temp[0] = b[0][i]; temp[1] = b[1][i]; } } cout<<temp[1]<<","<<temp[0]<<endl; return 0; }