读入一串字符,以“?”结束,分别统计其中每个数字(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
就这样
展开
 我来答
moosewoler
2016-12-11 · TA获得超过828个赞
知道小有建树答主
回答量:203
采纳率:75%
帮助的人:110万
展开全部

思路:

将输入保存到字符串中,然后逐字符判断是否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

~~~~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式