[求助]急啊:请大家看看这个题目为什么出错!
题目:输入一行字符,分别统计其中英文字母,空格,数字和其它字符的个数
我的解答:
/*****习题6.2*****/
#include<stdio.h>
int main(void)
{
int letter,space,number,others ;
char s ;
printf("Please input some chars:");
letter=0 ;
space=0 ;
number=0 ;
others=0 ;
s=getchar();
while((s=getchar())!='\n')
{
if(s>='0'&&s<='9')number++;
else if((s>='A'&&s<='Z')||(s>='a'&&s<='z'))letter++;
else if(s==' ')space++;
else others++;
}
printf("letter=%d\nnumber=%d\nspace=%d\nothers=%d\n",letter,number,space,others);
getch();
return(0);
}
调试环境:TC2.0 Win-TC1.91 VC++6.0
问题:在调试运行时,每次输入的第一个字符总是没有被统计到,例如输入"abcd12" (不包括引号) 运行结果是:
letter=3
number=2
space=0
others=0
我特地在TC/WIN-TC/VC++6.0中试了很多次,结果都是这样,请问这是什么原因啊?
----------------解决方案--------------------------------------------------------
在线等候
----------------解决方案--------------------------------------------------------
s=getchar(); //a在这儿被拐跑了.
while((s=getchar())!='\n') {
----------------解决方案--------------------------------------------------------
-_-
[此贴子已经被作者于2006-8-14 16:47:19编辑过]
----------------解决方案--------------------------------------------------------
哦 明白了 应该先执行一次 要用do...while 结构
----------------解决方案--------------------------------------------------------
谢谢2楼啊
我还有个问题
比如说1253 可以用1.253e3表示 后面这个3可以用变量吗 比如可以用1.253ei 表示1.253乘以10的i次方吗
----------------解决方案--------------------------------------------------------
[QUOTE]比如说1253 可以用1.253e3表示 后面这个3可以用变量吗 比如可以用1.253ei 表示1.253乘以10的i次方吗[/QUOTE]
不可能。
----------------解决方案--------------------------------------------------------