问题描述
- 给出一批整数,分析每个整数中的每个数字,求每个数字出现的字数。
-
#include
#include
#include
#define SIZE sizeof(int)
int main()
{
int num_str[32],count[10],*p,*head,*pt;
int n,i,num;
scanf("%d",&n); //给出整数个数
for(i=0;i<10;i++)
count[i]=0;
p=(int *)malloc(n*SIZE);
head=p;
for(;p<head+n;p++) //输入每个整数的值
scanf("%d",p);// for(p=head;p<head+n;p++) //调试时能显示每个整数
// printf("%d ",*p);
for(p=head;p<head+n;p++)
{
num=*p;
//printf("%d ",num);
sprintf(num_str,"%d",num); //提示错误在这步
pt=num_str;
while(pt!='')
{
switch(*pt-'0')
{
case 0:count[0]++;break;
case 1:count[1]++;break;
case 2:count[2]++;break;
case 3:count[3]++;break;
case 4:count[4]++;break;
case 5:count[5]++;break;
case 6:count[6]++;break;
case 7:count[7]++;break;
case 8:count[8]++;break;
case 9:count[9]++;break;
}
}
}
for(i=0;i<10;i++)
printf("%d-%d
",i,count[i]);
return 0;
}
解决方案
您程序中的num_str 是整型指针,sprintf的参数只能为char型指针。
解决方案二:
统计每个数字出现的次数。