标题:萌新求助,统计元音字母大小写的方法
只看楼主
凌若寒曦
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2017-10-5
结帖率:80%
已结贴  问题点数:12 回复次数:4 
萌新求助,统计元音字母大小写的方法
#include<stdio.h>
   int main()
   {
   
     char ch;
     int Lower,Capital;
     Lower=0;
     Capital=0;
     ch=getchar();
     while(ch=getchar()!='\n')
     if(ch=='a'||ch=='o'||ch=='e'||ch=='i'||ch=='u'||ch=='A'||ch=='O'||ch=='E'||ch=='I'||ch=='U')
       {if(ch=='a'||ch=='o'||ch=='e'||ch=='i'||ch=='u')
       {Lower=Lower+1;
       printf("Lower:%d",Lower);
       }
       else
       {Capital=Capital+1;
       printf("Capital:%d",Capital);
       }
      }
     return ;
}

最后不管输什么数,输多少都没有值输出来,这是为什么呢?
搜索更多相关主题的帖子: 统计 字母 大小写 方法 || 
2017-10-25 00:03
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:12 
ch最后被赋值 '\n'。
你以为的缩进不是你以为的缩进,while(){...} 要加大括号
ch=getchar()!='\n',  != 的优先级大于 =
程序代码:
#include<stdio.h>

int main()
{
    char ch;
    int Lower, Capital;
    Lower = 0;
    Capital = 0;
    //ch = getchar();
    while ((ch = getchar()) != '\n')
    {
        if (ch == 'a' || ch == 'o' || ch == 'e' || ch == 'i' || ch == 'u' || ch == 'A' || ch == 'O' || ch == 'E' || ch == 'I' || ch == 'U')
        {
            if (ch == 'a' || ch == 'o' || ch == 'e' || ch == 'i' || ch == 'u')
            {
                Lower = Lower + 1;
            }
            else
            {
                Capital = Capital + 1;
            }
        }
    }
    printf("Lower:%d\n", Lower);
    printf("Capital:%d\n", Capital);

    return 0;
}


[此贴子已经被作者于2017-10-25 00:22编辑过]


早知做人那么辛苦!  当初不应该下凡
2017-10-25 00:20
凌若寒曦
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2017-10-5
得分:0 
回复 2楼 炎天
请问一下,为什么ch=getchar()前面要加//,变成//ch=getchar呢?
2017-10-25 12:13
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
以下是引用凌若寒曦在2017-10-25 12:13:11的发言:

请问一下,为什么ch=getchar()前面要加//,变成//ch=getchar呢?

ch=getchar()放在那里会导致你输入的第一个字符变得没有意义,

早知做人那么辛苦!  当初不应该下凡
2017-10-25 12:51
凌若寒曦
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2017-10-5
得分:0 
回复 4楼 炎天
嗯。。我想一下,是不是放在这第一个存在ch的数会被第二个数取代,所以要保留的话,是不是应该改成while(ch!='\n')?
2017-10-25 15:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481724-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.890161 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved