【发布时间】:2026-01-07 01:25:14
【问题描述】:
输入 20 个字符串的数组。编写程序,打印出辅音比元音多且字母“r”至少重复 3 次的字符串。
我相信问题出在我的 if 循环中,但不知何故我不明白为什么它不能正常工作。它打印我输入的每个字符串。
这是我写的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char string[20][50];
int i, j;
int vowels=0;
int consonants=0;
int repeated_r=0;
printf("Enter the array of 20 strings:\n");
for(i=0;i<20;i++){
gets(string[i]);
}
for(i=0;i<20;i++){
for(j=0;j<50;j++){
if(string[i][j] == 'r'){
repeated_r++;
}
else if(string[i][j] == 'a' || string[i][j] == 'e' || string[i][j] == 'i' || string[i][j] == 'o' || string[i][j] == 'u'){
vowels++;
}
else{
consonants++;
}
}
if(consonants>vowels && repeated_r>=3){
fflush(stdin);
puts(string[i]);
}
}
return 0;
}
【问题讨论】:
-
r是一个辅音,所以如果你有turreteer这个词,它不会被打印出来,因为你会数 3 个r,4 个元音和 2 个辅音
标签: c arrays string for-loop char