#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; }
----------------解决方案--------------------------------------------------------
#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位 已明白。
----------------解决方案--------------------------------------------------------