| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
我发现for语句与while dowhile他们之间确实不是一个简单一个不简单的区别 ,今天做作业时,做了一个统计一句话中元音字母个数的程序 
我是这么写的 
- #include <stdio.h>
 
  
- int main()
 
 - {
 
 -         int a = 0,e = 0,i = 0,o = 0,u = 0,ch,sum;
 
 -         
 
 -         printf("请输入一个英文句子:");
 
 -         
 
 -         for (ch = getchar();ch != '\n';)
 
 -         {        
 
 -                 switch(ch)
 
 -                 {
 
 -                         case 'A':a++;break;
 
 -                         case 'a':a++;break;
 
 -                         case 'E':e++;break;
 
 -                         case 'e':e++;break;
 
 -                         case 'I':i++;break;
 
 -                         case 'i':i++;break;
 
 -                         case 'O':o++;break;
 
 -                         case 'o':o++;break;
 
 -                         case 'U':u++;break;
 
 -                         case 'u':u++;break;
 
 -                 }        
 
 -         }
 
 -         
 
 -         sum = a + e + i + o + u;
 
 -         
 
 -         printf("您输入的句子中,包含元音字母%d个\n\
 
 - 其中:a(%d),e(%d),i(%d),o(%d),u(%d)\n",sum,a,e,i,o,u);
 
 -         
 
 -         return 0;
 
 - }
 
  复制代码 
小甲鱼是这么写的 
- #include <stdio.h>
 
  
- int main()
 
 - {
 
 -         char ch;
 
 -         int a, e, i, o, u;
 
  
-         a = 0;
 
 -         e = 0;
 
 -         i = 0;
 
 -         o = 0;
 
 -         u = 0;
 
  
-         printf("请输入一个英文句子:");
 
  
-         while ((ch = getchar()) != '\n')
 
 -         {
 
 -                 switch (ch)
 
 -                 {
 
 -                         case 'a':
 
 -                         case 'A': a++;
 
 -                                   break;
 
 -                         case 'e':
 
 -                         case 'E': e++;
 
 -                                   break;
 
 -                         case 'i':
 
 -                         case 'I': i++;
 
 -                                   break;
 
 -                         case 'o':
 
 -                         case 'O': o++;
 
 -                                   break;
 
 -                         case 'u':
 
 -                         case 'U': u++;
 
 -                                   break;
 
 -                 }
 
 -         }
 
  
-         printf("您输入的句子中,包含元音字母%d个!\n", a + e + i + o + u);
 
 -         printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)\n", a, e, i, o, u);
 
  
-         return 0;
 
 - }
 
  复制代码 
我的程序在编译后,输入完句子后按下回车就不再反应了,而只需要把for那句改成while就没问题了,这是为什么呢?求大佬解答,也希望大佬可以分享一下自己在敲代码时,关于for与while有什么要注意的呢?
- #include <stdio.h>
 
  
- int main()
 
 - {
 
 -     int a = 0,e = 0,i = 0,o = 0,u = 0,ch,sum;
 
  
-     printf("请输入一个英文句子:");
 
  
-     //for (ch = getchar();ch != '\n';)
 
 -     for (ch = getchar();ch != '\n';ch = getchar())
 
 -     {        
 
 -         switch(ch)
 
 -         {
 
 -             case 'A':a++;break;
 
 -             case 'a':a++;break;
 
 -             case 'E':e++;break;
 
 -             case 'e':e++;break;
 
 -             case 'I':i++;break;
 
 -             case 'i':i++;break;
 
 -             case 'O':o++;break;
 
 -             case 'o':o++;break;
 
 -             case 'U':u++;break;
 
 -             case 'u':u++;break;
 
 -         }        
 
 -     }
 
  
-     sum = a + e + i + o + u;
 
  
-     printf("您输入的句子中,包含元音字母%d个\n\
 
 -             其中:a(%d),e(%d),i(%d),o(%d),u(%d)\n",sum,a,e,i,o,u);
 
 -     return 0;
 
 - }
 
 
  复制代码 
 
 
 |   
 
 
 
 |