腾讯视频综艺:请高手帮我做道C语言题~!谢谢`!急~!!!!!!!!

来源:百度文库 编辑:高校问答 时间:2024/05/04 08:08:12
输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的数.用下标为0元素统计字符"0"的个数,下标为1的元素计字符"1"的个数,……。
main()
{
char c;
int a[10],i;
while((c=getchar())!='\n')
{
a[c-48]++;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}

这个解法是同学做的,但运行不出结果来,请高手查看一下,a[c-48]++这里讲清楚点,谢谢`!~

数组没有初始化,所以算不出结果。把c-48改成c-'0'好懂一点
main()
{
char c;
int a[10]={0};
int i;
while((c=getchar())!='\n')
{
if (c>='0'&&c<='9') a[c-'0']++;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}

c-48把ascii值转化成数字,0的ascii值是48
输入0一次
a[0]++
输入0再一次
a[0]++
做记数用

唉,被水晶抢先了。