灯火阑珊201 发表于 2022-9-26 17:51:43

求助小甲鱼C语言课后作业S1E15动动手的第0题

我的代码是这样的:
#include<stdio.h>
int main()
{
        int a,e,i,o,u;
        char ch;
        a=e=i=o=u=0;
        printf("请输入一段英文句子:");
        while(ch=getchar() != '\n')
        {
                if(ch=='a')
                {
                        a++;
                }
                else if(ch=='e')
                {
                        e++;
                }
                else if(ch=='i')
                {
                        i++;
                }
                else if(ch=='o')
                {
                        o++;
                }
                else if(ch=='u')
                {
                        u++;
                }

        }
                printf("a有%d个",a);
                printf("e有%d个",e);
                printf("i有%d个",i);
                printf("o有%d个",o);
                printf("u有%d个",u);
        return 0;
}
输入句子之后所有元音打印出来都是0个,不知道哪错了
我看答案用的是switch语句,如果想用if语句该怎么改?

jackz007 发表于 2022-9-26 18:23:25

本帖最后由 jackz007 于 2022-9-26 18:24 编辑

#include <stdio.h>

int main(void)
{
      char ch , e = {'a' , 'e' , 'i' , 'o' , 'u'}                              ;
      int d = {0} , i , j , k , n                                              ;
      printf("请输入一段英文句子:")                                              ;
      for(i = 0 ; i < 5 ; i ++) d = 0                                          ;
      for(; (ch = getchar()) !='\n' ;) {
                for(i = 0 ; i < 5 ; i ++) if(ch == e || ch == e - 32) d ++ ;
      }
      for(i = 0 ; i < 5 ; i ++) {
                if(d) printf("%c(%c)有 %d 个\n" , e , e - 32 , d)       ;
      }
}
      编译、运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
请输入一段英文句子:I'm a programmer !
a(A)有 2 个
e(E)有 1 个
i(I)有 1 个
o(O)有 1 个

D:\\C>
页: [1]
查看完整版本: 求助小甲鱼C语言课后作业S1E15动动手的第0题