|  | 
 
| 
目的:
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,其他也是恰巧分配的地址没有值而已 | 
 |