题目描述
输入一个长度小于等于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;
}
本文介绍了一个算法,用于输入一个只包含数字的字符串,并找出其中出现最多次数的数字及其出现次数。
1058

被折叠的 条评论
为什么被折叠?



