Онлайн компилятор C

//a, e, i, o, u, y. //Одна непустая строка длиной до 200 символов без пробелов. #include <stdio.h> int main() { int count =0; char ch=0; while(1) { scanf("%c",&ch); if(ch=='\n') { break; } if(ch>='A'&&ch<='Z') { ch=ch+32; } if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u'||ch=='y') { count++; } } printf("%d\n",count); return 0; }
这段代码的功能是:从输入中读取一串字符(不含空格),统计其中元音字母(a, e, i, o, u, y)出现的次数,并输出结果。代码将大写字母转换为小写后再判断,因此大小写元音都会被统计。

- 你的循环条件 `while(1)` 配合 `break` 可以工作,但更常见的做法是使用 `while(scanf("%c", &ch) == 1)` 来直接判断是否成功读取字符,这样更简洁。
- 注意:题目要求字符串长度不超过200且不含空格,但你的代码没有限制读取长度。如果输入超过200个字符,程序仍会继续读取,可能导致意外行为。考虑如何限制读取的字符数。