|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
目的:
写一个程序,统计用户输入的字符串中,各个元音字母出现的次数(包含大小写的 a、e、i、o、u)。
代码如下:
- #include<stdio.h>
- int main()
- {
- int a,e,i,o,u,n;
- char ch;
-
- printf("请输入一个英文句子:");
- while (ch!='\n')
- {
- ch=getchar();
- switch(ch)
- {
- case'a':case'A':a++;continue;
- case'e':case'E':e++;continue;
- case'i':case'I':i++;continue;
- case'o':case'O':o++;continue;
- case'u':case'U':u++;continue;
- default:continue;
- }
- }
- n=a+e+i+o+u;
- printf("您输入的语句中,包含元音字母%d个!\n",n);
- printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);
- return 0;
- }
复制代码
运行结果:
遇到的问题:
int e 的初始值不是0,根据测试,应该是1.
不管声明变量中e的位置在哪,e值是存在问题的
测试方法:
程序成功编译并运行之后直接敲回车,显示e的值为1.
我在声明变量中将e和i的位置对调,e值仍为1.
关于编译:
编译没有报错或者警告。
只有e的值不正常。
编译环境:
Dev-c++
求教问题:
为什么这里的e的值不是0呢?
其他的变量为什么没有问题呢?
你没有定义初始值是多少,系统是随机分配地址,可能存储e那个地方系统原来有值所以就会先等于1,其他也是恰巧分配的地址没有值而已
|
|