鱼C论坛

 找回密码
 立即注册
查看: 3313|回复: 4

求助,分别储存在变量num[10],blank,others里边并打印出来。

[复制链接]
发表于 2013-9-5 16:52:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 eleven_xxq 于 2013-9-6 15:55 编辑

题目是小甲鱼老师在视屏中的。呵呵。第一次发帖不懂套路请多见谅。

3.编写一个用来统计输入的各个数字,空白符(空格,制表,换行)以及所有的其他字符出现的次数的程序。
分别储存在变量num[10],blank,others里边并打印出来。

不知道我理解对了没有。但是勉强算是写出来了。
但是“分别储存在变量num[10],blank,others里边并打印出来。”这个我不知道怎么实现。
一下是我写的:

        int  c , i , j , k , nb , nt , nl , num[10]={0};

        j = nb = nt = nl =0;

        while ((c = getchar()) != EOF)
        {
                if ( (c>='A' && c<='Z') || (c>='a' && c<='z')) //不分大小写字母的ASCII字符范围。
                {
                        ++nb;
                }
                else if ( c>='0' && c<='9')  //数字0到9的ASCII字符范围
                {
                        i = (c-48);
                        ++num;
                        ++j;
                }
                else if ( c == '\n')  //输入的回车数
                {
                        ++nl;
                }
                else
                {
                        ++nt;        //其他字符
                }
        }

        printf ("一共输入的(不分大小写的)字母个数是:\n");
        printf ("%d\n\n",nb);

/*
        printf ("num[0]=%d\nnum[1]=%d\nnum[2]=%d\nnum[3]=%d\nnum[4]=%d\nnum[5]=%d\nnum[6]=%d\nnum[7]=%d\nnum[8]=%d\nnum[9]=%d\n",
                num[0],num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9]);
*/
        printf ("0~9分别输入的个数是:\n");
        for (k=0,i=0;k<j,i<=9;k++,i++)
        {
                printf("num[%d]=%d\n",i,num);
        }
        printf ("一共输入的数字是%d\n\n",j);

        printf ("一共输入回车的个数是:\n");
        printf ("%d\n\n",nl);

        printf ("一共输入其他字符个数是:\n");
        printf ("%d\n\n",nt);

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-6 05:27:38 | 显示全部楼层
while ((c = getchar()) != EOF)
"EOF"是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-6 08:58:44 | 显示全部楼层

是需要退出的时候用的。回车,按F6或者CTRL+Z后再回车,就退出输入,继续执行下边的语句。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-6 10:26:46 | 显示全部楼层
你没认真看题意~0~9,九个数字分别对应num[0]~num[9]存储其出现次数
把你代码里判断数字那段改成下面的:

  1. else if ( c>='0' && c<='9')  //数字0到9的ASCII字符范围
  2.                 {
  3.                         i = (c-48);
  4.                         ++num[i];    //改成对应数组元素
  5.                 }
复制代码
当然也可以用switch语句。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-6 16:03:49 | 显示全部楼层
tsembrace 发表于 2013-9-6 10:26
你没认真看题意~0~9,九个数字分别对应num[0]~num[9]存储其出现次数
把你代码里判断数字那段改成下面的: ...

谢谢你
呵呵,我想可能是要实现这样的:
比如:我输入   asdf00152369874,./';[]0147852369zxcv
得到的结果是:
一共输入的字母个数是:8
字母有:asdfzxcv
0~9分别输入的个数是:
num[0] = 3
000
num[1] = 2
11
num[2] = 2
22
~
~
~
依次类推这样。
输入的其他字符个数有:7
分别有:,。/‘;[]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-29 03:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表