题目:
思路:
输入该数后,先进行数位分离,找出出现次数最多的那一个次数;然后运用循环进行遍历,当最大次数与对应数出现的次数相等的时候,输出数。
AC代码:
#include<stdio.h>
int main()
{
int n,i,max=0;
scanf("%d",&n);
int b[20]={0},s[n+10];//用数组进行存放,用的时候比较简便
for(i=0;i<n;i++)
scanf("%d",&s[i]);
for(i=0;i<n;i++)
while(s[i]!=0)
{
b[s[i]%10]++;//对该数进行数位分离的同时,同时记录该数出现的次数
s[i]=s[i]/10;
}
for(i=0;i<20;i++)
if(max<=b[i])
max=b[i];//求出最大出现次数
printf("出现次数最多%d次的数字是",max);
for(i=0;i<20;i++)
if(max==b[i])//判断该输出数的时候的条件
printf(" %d",i);//对应的数,不是用数组进行输出。因为数组存放的是次数,i才是该数
return 0;
}
需要注意的问题:
1.题意:注意是一个数中出现最多的十进制位数,别看成字符串了
2.输出:一定要记住最后输出的是数,不仅仅是次数,并且输出格式要注意