| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 447 人关注过本帖
标题:一个c语言的问题
只看楼主 加入收藏
wangtng03
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-10-28
收藏
 问题点数:0 回复次数:7 
一个c语言的问题

#include "stdio.h"
main()
{
int letter=0,space=0,number=0,others=0;
char a;
while(a=getchar()!='\n')
{
if((a>=65&&a<=90)||(a>=97&&a<=122))
{
letter++;
}
else if(a>=48&&a<=57)
{
number++;
}
else if(a==59)
{
space++;
}
else
others++;

}
printf("there are %d letter\n",letter);
printf("there are %d space\n",space);
printf("there are %d number\n",number);
printf("there are %d others\n",others);
}

我本想把输入的字符分类统计出来,可为什么全都加到others上去了

搜索更多相关主题的帖子: c语言 
2007-11-11 23:33
ecjtudream
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-10
收藏
得分:0 
while(a=getchar()!='\n')

!!!!!
http://hi.baidu.com/lzxiangz/blog/item/07892c95f0e4950b7af48057.html


这里有关于getchar()函数的详细解释!
2007-11-12 00:26
ecjtudream
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-11-10
收藏
得分:0 
#include "stdio.h"
main()
{
int letter=0,space=0,number=0,others=0;
char a;
while((a=getchar())!='\n')
{
if((a>=65 && a<=90)||(a>=97 && a<=122))
letter++;
else
{
if(a>=48 && a<=57)
number++;
else
{
if(a==59) space++;
else
{
others++;
}
}
}
}
printf("there are %d letter\n",letter);
printf("there are %d space\n",space);
printf("there are %d number\n",number);
printf("there are %d others\n",others);
}



同时让自己的程序规范化哦! 呵呵!


写的规范,形成自己的风格,也能让别人很容易读懂自己的代码.呵呵!

加油哦!
2007-11-12 00:28
ambrose
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-11-10
收藏
得分:0 

看不出错误来,那就是while里面写借了

2007-11-12 09:00
上来找找
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-5-7
收藏
得分:0 

因该是while那有错

2007-11-12 09:18
chengfuwei
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-11-12
收藏
得分:0 

可能是whlie里面有错误吧?看不出来啊


2007-11-12 09:21
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
收藏
得分:0 
while(a=getchar()!='\n') 应改为:while((a=getchar())!='\n');
分析:因为=的优先级低于!=。所以如果不加括号的许,会先执行关系表达式getchar()!='\n',再把关系表达式getchar()!='\n'的值(非0即1)放入a 中,所以你下面的统计工作就不能实现了。因为你并没有把你输入的字符放入a中。


行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2007-11-12 09:27
forrestx
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-11-9
收藏
得分:0 
SPACE的ASCII码,十进制是32,不是59
2007-11-12 15:53
快速回复:一个c语言的问题
数据加载中...
 
   



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

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