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