用C语言编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数

2024-10-27 18:28:13
推荐回答(3个)
回答1:

#include
#include
#include
int main()
{
int a[10];//每个数字的计数器
int num;
int i;
char ch[100],*ch1,num1;
for(i = 0;i < 10;i++)
a[i] = 0;
printf("请输入一个整数:");
scanf("%d",&num);
itoa(num,ch,10); //将数字转化为字符串
for(ch1 = ch;ch1 {
num1 = *ch1;
switch(num1)
{
case '0': a[0]++; break;
case '1': a[1]++; break;
case '2': a[2]++; break;
case '3': a[3]++; break;
case '4': a[4]++; break;
case '5': a[5]++; break;
case '6': a[6]++; break;
case '7': a[7]++; break;
case '8': a[8]++; break;
case '9': a[9]++; break;
default:break;
}
}
printf("各数字出现的次数如下:\n");
printf("数字:0 1 2 3 4 5 6 7 8 9\n");
printf("次数:");
for(i = 0;i < 10;i++)
printf("%-3d",a[i]);
printf("\n");
return 0;
}

回答2:

用递归写了个小程序,测试是可行的。算是提供个参考吧
#include

int a[10];

void tongji(int iNum)
{
int iTemp;
int iTempD;
if(iNum<10)
a[iNum]++;
else if(iNum<100)
{
iTemp=iNum%10;
iTempD=iNum/10;
a[iTemp]++;
a[iTempD]++;
}
else
{
a[iNum%10]++;
iNum=iNum/10;
tongji(iNum);
}
}

void main()
{
int iNum;
printf("input a number!\n");
scanf("%d",&iNum);
tongji(iNum);
for(int i=0; i<10;i++)
{
printf("%d",i);
printf("的次数是%d\n",a[i]);
}
}

回答3:

#include
void main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;
printf("shuru\n");
while((c=getchar())!='\n')
{
switch (c)
{case '1' : a=a++;break;
case '2':b=b++;break;
case '3':c=c++;break;
case '4':d=d++;break;
case '5':e=e++;break;
case'6':f=f++;break;
case 7:g=g++;break;
case '8':h=h++;break;
case '9':i=i++;break;
case '0':j=j++;break;
}
}
printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",a,b,c,d,e,f,g,h,i,j);
}