|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|