鱼C论坛

 找回密码
 立即注册
查看: 1903|回复: 1

[已解决]求助小甲鱼C语言课后作业S1E15动动手的第0题

[复制链接]
发表于 2022-9-26 17:51:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我的代码是这样的:
#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语句该怎么改?
最佳答案
2022-9-26 18:23:25
本帖最后由 jackz007 于 2022-9-26 18:24 编辑
#include <stdio.h>

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

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

D:\[00.Exerciese.2022]\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-26 18:23:25 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-9-26 18:24 编辑
#include <stdio.h>

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

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

D:\[00.Exerciese.2022]\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 21:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表