作业帮 > 综合 > 作业

输入一行数字字符,用数组元素作为计数器来统计每个数字字符的个数.用下标为0的元素统计字符‘0’的个

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/09 19:14:10
输入一行数字字符,用数组元素作为计数器来统计每个数字字符的个数.用下标为0的元素统计字符‘0’的个
输入一行数字字符,用数组元素作为计数器来统计每个数字字符的个数.
用下标为0的元素统计字符‘0’的个数,下标为1的元素统计字符‘1’的个数.以此类推
#include "stdio.h"
main()
{
char ch,s[100];
int i=0,a[10]={0};
while((ch=getchar())!='\n')
{
s[i]=ch;
i++;
}
switch (s[i++])
{
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]++;
}
for(i=0;i
输入一行数字字符,用数组元素作为计数器来统计每个数字字符的个数.用下标为0的元素统计字符‘0’的个
很简单,主要错误在switch-case上面,switch-case应该在while循环里面,因为你在switch条件里写的是s[i++],然后删除while循环里的i++.另一个错误是,case的判断条件不是0、1、2...9这样的整数,而是'0'、'1'、'2'...'9'这样的字符,要用单引号括起来.正确的程序如下:
char ch,s[100];
int i=0,a[10]={0};
while((ch=getchar())!='\n')
{
s[i]=ch;
switch (s[i++])
{
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]++;
}
}

for(i=0;i