读入一串字符,以“?”结束,分别统计其中每个数字(0 1 2 3 4。。。。。9)的个数,并输出
读入一串字符,以“?”结束,分别统计其中每个数字(01234。。。。。9)的个数,并输出要求用数组比如输入jdoc82ur.re1675884"o"#(?输出为1出现的次...
读入一串字符,以“?”结束,分别统计其中每个数字(0 1 2 3 4。。。。。9)的个数,并输出要求用数组
比如输入
jdoc82ur.re1675884"o"#(?
输出为
1出现的次数为:1
2出现的次数为:1
。
。
。
8出现的次数为:3
9出现的次数为:0
就这样 展开
比如输入
jdoc82ur.re1675884"o"#(?
输出为
1出现的次数为:1
2出现的次数为:1
。
。
。
8出现的次数为:3
9出现的次数为:0
就这样 展开
展开全部
思路:
将输入保存到字符串中,然后逐字符判断是否0~9之间的字符并计数,最后输出。
因为字符串是定长的(静态分配),所以在读入字符的时候加上了越界检查。
判断并计数的时候用的是switch结构,写起来会比较麻烦。
代码:
#include <stdio.h>
#define LENGTH 256
int main(void)
{
char c;
char s[LENGTH];
int i=0;
int l;
int count[10]={0};
printf("输入字符串,以\"?\"结束:\n");
while (c != '?')
{
if (i<LENGTH-1)
{
c = getchar();
s[i]=c;
i++;
}
else
{
break;
}
}
s[i]='\0';
l=i-1;
for (i=0;i<l;i++)
{
switch (s[i])
{
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;
}
}
printf("%s\n",s);
for (i=0;i<10;i++)
{
printf("%d出现的次数:%d\n",i,count[i]);
}
return 0;
}
测试结果:
moose@debian-vm:~$ ./main
输入字符串,以"?"结束:
jdoc82ur.re1675884"o"#(?
jdoc82ur.re1675884"o"#(?
0出现的次数:0
1出现的次数:1
2出现的次数:1
3出现的次数:0
4出现的次数:1
5出现的次数:1
6出现的次数:1
7出现的次数:1
8出现的次数:3
9出现的次数:0
2016-12-11
展开全部
定义个9个元素的整数的数组,各元素初始化成0,,,,循环这个字符串,遇到是'0'~'9'的,对前面的数组对应的元素加1
~~~~
~~~~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询