设一个数组a[11],a[1]到a[10]的值代表0到9的个数,出现一个1则a[1]++;出现2则a[2]++;最后想比较谁最多就简单了吧。想知道数里面都是多少,可以如下:
比如n=1234;
while(n!=0)
{
x=n%10;//第一次x是4,第二次是3.。。。
n=n/10;
}
#include
#include
#include
using std::sort;
int c[10];
char s[100];
bool Desc(char a, char b)
{
if(c[a-'0']==c[b-'0'])
return aelse
return c[a-'0']>c[b-'0'];
}
int main()
{
int n, len, t;
scanf("%d", &n);
while(n--)
{
memset(c, 0, sizeof(c));
scanf("%s", s);
len = strlen(s);
for(int i=0; i
char r[11]={"0123456789"};
sort(r, r+10, Desc);
t = c[r[0]-'0'];
printf("出现次数最多%d次的数字是 %c", t, r[0]);
for(int i=1; i<10&&c[r[i]-'0']==t; i++)
printf(" %c", r[i]);
printf("\n");
}
return 0;
}