统计c中给定列表中没有元音的单词



我正在尝试计数在给定列表中不包含任何元音的单词。下面是我的代码:

int noVowel(char * List[], int nSize){
int i, j, count = 0;
for(i=0; i<nSize; i++){
for(j=0; j<strlen(List[j]); j++){
if(*List[j]!='a' || *List[j]!='e' || *List[j]!='i' || *List[j]!='o' || *List[j]!='u')
count++;
}
}
return count;}

List[]是我要检查的单词列表。nSize是列表[]中列出的单词数。

我想请求帮助返回单词没有元音的数量。我为这些令人困惑的代码道歉,因为我是编程新手。

这是对你的代码的更正:

#include <stdio.h>
#include <string.h>
int isVowel(char c) {
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c =='u' || c =='y')
return (1);
else
return (0);
}

首先,这里有一个函数,它通过返回1来告诉你一个字符是否是元音(如果它不是元音,它返回0)。

int noVowel(char *List[], int nSize){
int i, j, count = 0;

for(i = 0; i < nSize; i++) {

for(j = 0; j < strlen(List[i]); j++) {
if (isVowel(List[i][j]) == 1)
break ;
}
if (List[i][j] == '')
count++;
}
return count;
}

其次,像你一样,我做了两个循环来遍历字符串中的所有字符。如果我找到一个元音,我就中断,这意味着我跳出了当前循环。如果我在第二个循环之外,我想知道我是否能够到达字符串的末尾。如果是,我没有找到任何元音,所以我可以增加我的计数int。

两个循环的实现中有一个错误。通过运行这个版本,一个一个地显示字符,你应该看到有一个问题。

for(i=0; i<nSize; i++){
for(j=0; j<strlen(List[j]); j++){
printf("%c", List[i][j]);
}
printf("n");
}

注:缩进在编程中很重要,它使你的代码易于阅读。在我的学校,我们使用以下约定https://cdn.intra.42.fr/pdf/pdf/960/norme.en.pdf(你不应该应用他们提出的所有规则,但其中一些是很好的做法)

最新更新