计算给定列表中没有元音的单词
Count words without vowels in a given list in 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 是 List[].
中列出的单词数
我想请求帮助返回 个 个单词 没有元音 。由于我是编程新手,对于令人困惑的代码,我深表歉意。
这是对您的代码的更正:
#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 来告诉您字符是否为元音(如果不是元音,则 returns 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] == '[=11=]')
count++;
}
return count;
}
其次,和你一样,我做了两个循环来遍历字符串中的所有字符。如果我找到一个元音字母,我会中断,这意味着我会跳出当前循环。如果我在第二个循环之外,我想知道我是否能够走到字符串的末尾。如果是,我没有找到任何元音,所以我可以增加我的计数整数。
您在执行 2 个循环时出错。通过运行这个版本一个一个地显示字符你应该看到有问题。
for(i=0; i<nSize; i++){
for(j=0; j<strlen(List[j]); j++){
printf("%c", List[i][j]);
}
printf("\n");
}
P.S.: 缩进在编程中很重要,它使您的代码易于阅读。在我的学校,我们使用以下约定 https://cdn.intra.42.fr/pdf/pdf/960/norme.en.pdf(你不应该应用他们提出的所有规则,但其中一些是好的做法)
我正在尝试计算给定列表中不包含任何元音的单词。这是我的代码:
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 是 List[].
中列出的单词数我想请求帮助返回 个 个单词 没有元音 。由于我是编程新手,对于令人困惑的代码,我深表歉意。
这是对您的代码的更正:
#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 来告诉您字符是否为元音(如果不是元音,则 returns 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] == '[=11=]')
count++;
}
return count;
}
其次,和你一样,我做了两个循环来遍历字符串中的所有字符。如果我找到一个元音字母,我会中断,这意味着我会跳出当前循环。如果我在第二个循环之外,我想知道我是否能够走到字符串的末尾。如果是,我没有找到任何元音,所以我可以增加我的计数整数。
您在执行 2 个循环时出错。通过运行这个版本一个一个地显示字符你应该看到有问题。
for(i=0; i<nSize; i++){
for(j=0; j<strlen(List[j]); j++){
printf("%c", List[i][j]);
}
printf("\n");
}
P.S.: 缩进在编程中很重要,它使您的代码易于阅读。在我的学校,我们使用以下约定 https://cdn.intra.42.fr/pdf/pdf/960/norme.en.pdf(你不应该应用他们提出的所有规则,但其中一些是好的做法)