此题为小紫书习题3-3;
背景:代码一次过,感觉很爽快!!!
学习:此题的关键在于熟练使用sprintf 将数字打印到字符串中,将数字转化成字符串进行处理。
#include<stdio.h>
#include<string.h>
char s[10005];
int a[12];
int main ()
{
int t;
scanf("%d",&t);
while (t--)
{
int n;
int i,j;
scanf("%d",&n);
memset(a,0,sizeof(a));
for(i=1;i<=n;i++)
{
sprintf(s,"%d",i);
for(j=0;s[j]!='\0';j++)
{
a[s[j]-'0']++;
}
}
for(i=0;i<10;i++)
{
if(i!=9)
printf("%d ",a[i]);
else
printf("%d\n",a[i]);
}
}
return 0;
}