| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 470 人关注过本帖
标题:数组统计数字,空白符,其他字符的代码问题
只看楼主 加入收藏
bingnongkoo
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-1-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
数组统计数字,空白符,其他字符的代码问题
刚开始学,自己努力后无果来询问,请问有什么问题,if后不加{},谢谢
#include<stdio.h>
main()
{
int c,i,nwhite,nother;
int ndigit[10];
nwhite=nother=0;
for(i=0;i<10;++i)
ndigit[i]=0;
while((c=getchar())!=EOF)
if(c>='0'&&c<='9')
++ndigit[c-'0'];
else if(c==" "||c=="\n"||c=="\t")
++nwhite;
else
++nother;
printf("digits=");
for(i=0;i<10;++i)
printf("%d",ndigit[i]);
printf(",white space=%d,other=%d",nwhite,nother);
}
搜索更多相关主题的帖子: 统计 
2014-01-25 20:27
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
没看懂你想问啥呢  

IF后加不加大括号  取决因素也不少呢

DO IT YOURSELF !
2014-01-25 20:41
纸T0
Rank: 4
来 自:
等 级:业余侠客
威 望:2
帖 子:34
专家分:216
注 册:2013-11-16
收藏
得分:4 
如果只有一句,可以不用大括号;

如果有第二句,第二句不属于前面的if;

将会直接执行而不考虑if里的条件!~

2014-01-26 08:24
SaberLion
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:85
专家分:348
注 册:2014-1-4
收藏
得分:4 
你这个可以用<ctype.h>  这个头文件  里面有相应的函数帮你判断数字空白字符的
2014-01-27 13:36
tianwen0921
Rank: 2
等 级:论坛游民
帖 子:18
专家分:44
注 册:2014-1-27
收藏
得分:4 
c语言以分号结束,如果if后面只想执行一句,就不需要加花括号,如果有多句,不加花括号的话,执行到第一句碰到分号,这个if语句就会结束了,加上花括号,就循环括号里的内容,希望对你有帮助
2014-01-27 13:44
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:4 
回复 楼主 bingnongkoo
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main()
{
int c,i,nwhite,nother;
int ndigit[10];
nwhite=nother=0;
for(i=0;i<10;++i)
ndigit[i]=0;
while((c=getchar())!=EOF)
{
if(c>='0'&&c<='9')
++ndigit[c-'0'];
else if(c==' '||c=='\n'||c=='\t')
++nwhite;
else
++nother;}
printf("digits=");
for(i=0;i<10;++i)
printf("%d",ndigit[i]);
printf(",white space=%d,other=%d",nwhite,nother);
}你错误有两点,第一你这个while循环没有加大括号,楼主不会不知道为什么while循环后面大括号的意思吧?
按照你这个题目要求,在这个while循环需要包括
while((c=getchar())!=EOF)
{
if(c>='0'&&c<='9')
++ndigit[c-'0'];      //第一个运算。
else if(c==' '||c=='\n'||c=='\t')//第二个运算
++nwhite;
else  //第三个运算
++nother;}如果你不把这三个运算全部用大括号包括进去,那么只会执行while后面的第一个语句-》即遇到第一个分号为止。这是你第一个错误。
第二:else if(c==" "||c=="\n"||c=="\t") 楼主你这个语句是用来判断输入是否为空格,回车。。?你看看你写错了什么,else if(c==' '||c=='\n'||c=='\t')应该是这么写,把双引号改成单引号。楼主要细心啊,解释够详细么?如果帮到你了,请给分吧,我缺分提问了。。。

想抽苏烟了。
2014-01-28 09:08
快速回复:数组统计数字,空白符,其他字符的代码问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031220 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved