当前位置: 代码迷 >> C语言 >> [求助]急啊:请大家看看这个题目为什么出错!
  详细解决方案

[求助]急啊:请大家看看这个题目为什么出错!

热度:219   发布时间:2006-08-14 16:30:39.0
[求助]急啊:请大家看看这个题目为什么出错!

题目:输入一行字符,分别统计其中英文字母,空格,数字和其它字符的个数
我的解答:


/*****习题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中试了很多次,结果都是这样,请问这是什么原因啊?

搜索更多相关的解决方案: 英文字母  include  number  letter  color  

----------------解决方案--------------------------------------------------------
在线等候
----------------解决方案--------------------------------------------------------
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]
不可能。
----------------解决方案--------------------------------------------------------
  相关解决方案