吻你不厌 发表于 2020-10-23 14:43:51

小白疑惑?

#include<stdio.h>

int main()
{
        int ch;
        int a,e,i,o,u,all = 0;
       
        printf("请输入一个英文句子:");
       
        while((ch = getchar()) != '\n')
        {
                if(ch == 'a' || ch == 'A')
                {
                        a++;
                        continue;
                }
                else if(ch == 'e' || ch == 'E')
                {
                        e++;
                        continue;
                }
                else if(ch == 'i' || ch == 'I')
                {
                        i++;
                        continue;
                }
                else if(ch == 'o' || ch == 'O')
                {
                        o++;
                        continue;
                }
                else if(ch == 'u' || ch == 'U')
                {
                        u++;
                        continue;
                }
                else
                {
                        ;
                }
        }
        all = a + e + i + o + u;
       
        printf("您输入的句子中,包含元音字母%d个!\n",all);
        printf("其中:a(%d),e(%d),i(%d),o(%d),u(%d)",a,e,i,o,u);
       
        return 0;
}
程序目的是统计元音字母,可为什么统计出来总是多一个e呀?

sunrise085 发表于 2020-10-23 15:01:15

你的a e i o u五个变量都没有赋初值,就进行自加运算,最后只有一个变量出错已经是万幸了。。。正常情况下有可能都出错呢
不赋初值,这个变量的值是不确定的,有可能是0,很大概率是其他的值,直接进行自加运算,最后统计的结果会出错也是正常的

吻你不厌 发表于 2020-10-23 15:03:19

sunrise085 发表于 2020-10-23 15:01
你的a e i o u五个变量都没有赋初值,就进行自加运算,最后只有一个变量出错已经是万幸了。。。正常情况下有 ...

不是有int a,e,i,o,u,all = 0;吗?都为0呀!

sunrise085 发表于 2020-10-23 15:06:53

吻你不厌 发表于 2020-10-23 15:03
不是有int a,e,i,o,u,all = 0;吗?都为0呀!

{:5_104:}{:5_104:}

你这是给all赋初值为0,跟前面的其他变量没关系。
谁教你的能这样集体赋初值?

吻你不厌 发表于 2020-10-23 15:10:20

sunrise085 发表于 2020-10-23 15:06
你这是给all赋初值为0,跟前面的其他变量没关系。
谁教你的能这样集体赋初值?

py好像可以,哈哈

sunrise085 发表于 2020-10-23 15:25:33

吻你不厌 发表于 2020-10-23 15:10
py好像可以,哈哈

py也不可以,py写法也是要多个0
a,e,i,o,u=0,0,0,0,0

吻你不厌 发表于 2020-10-23 17:09:05

sunrise085 发表于 2020-10-23 15:25
py也不可以,py写法也是要多个0

好吧
页: [1]
查看完整版本: 小白疑惑?