当前位置: 代码迷 >> C语言 >> [求助]大家帮看看错在那里~
  详细解决方案

[求助]大家帮看看错在那里~

热度:104   发布时间:2005-04-11 18:55:00.0
[求助]大家帮看看错在那里~

#include<stdio.h> main() { char ch; int nl,nu,ni,nk; nl=nu=ni=nk=0; ch=getchar(); while(ch!='\n'); { if(ch==' ') nk++; else if(ch>='0'&&ch<='9') ni++; else if(ch>='A'&&ch<='Z') nu++; else if(ch>='a'&&ch<='z') nl++; }

printf("nl=%d,nu=%d,ni=%d,nk=%d\n",nl,nu,ni,nk); getchar(); return 0; } 以上是我写的,程序的目的是打一句话计算其中空格、大写字母、小写字母、数字的个数,但是总也出不来结果,如果改成下面的就能出来结果,期待有人告诉我原因。 #include<stdio.h> main() { char ch; int nl,nu,ni,nk; nl=nu=ni=nk=0; do { ch=getchar(); if(ch==' ') nk++; else if(ch>='0'&&ch<='9') ni++; else if(ch>='A'&&ch<='Z') nu++; else if(ch>='a'&&ch<='z') nl++; } while(ch!='\n'); printf("nl=%d,nu=%d,ni=%d,nk=%d\n",nl,nu,ni,nk); getchar(); return 0; }


----------------解决方案--------------------------------------------------------
以下是引用blanka_ren在2005-4-11 18:55:21的发言:

#include<stdio.h> main() { char ch; int nl,nu,ni,nk; nl=nu=ni=nk=0; ch=getchar(); while(ch!='\n'); {//while开始 if(ch==' ') nk++; else if(ch>='0'&&ch<='9') ni++; else if(ch>='A'&&ch<='Z') nu++; else if(ch>='a'&&ch<='z') nl++; ch=getchar();//添加这一行应该正确 }//while结束 //所以得不到正确结果

printf("nl=%d,nu=%d,ni=%d,nk=%d\n",nl,nu,ni,nk); getchar(); return 0; } 以上是我写的,程序的目的是打一句话计算其中空格、大写字母、小写字母、数字的个数,但是总也出不来结果,如果改成下面的就能出来结果,期待有人告诉我原因。 #include<stdio.h> main() { char ch; int nl,nu,ni,nk; nl=nu=ni=nk=0; do { ch=getchar(); if(ch==' ') nk++; else if(ch>='0'&&ch<='9') ni++; else if(ch>='A'&&ch<='Z') nu++; else if(ch>='a'&&ch<='z') nl++; } while(ch!='\n'); printf("nl=%d,nu=%d,ni=%d,nk=%d\n",nl,nu,ni,nk); getchar(); return 0; }


----------------解决方案--------------------------------------------------------
你的第一个程序循环体执行了空语句 而且循环体内缺少字符输入语句

[此贴子已经被作者于2005-4-12 9:59:11编辑过]



----------------解决方案--------------------------------------------------------
谢谢楼上2位 已明白。
----------------解决方案--------------------------------------------------------
  相关解决方案