【发布时间】:2021-08-26 13:37:45
【问题描述】:
我正在尝试计算给定列表中不包含任何元音的单词。这是我的代码:
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[] 中列出的单词数。
我想请求帮助以返回不带元音的单词个数。由于我是编程新手,我为令人困惑的代码道歉。
【问题讨论】:
-
代码有什么问题?请花一些时间阅读the help pages,阅读SO tour,阅读How to Ask,以及this question checklist。最后请学习如何edit您的问题以改进它们。
-
作为猜测您可能遇到的问题,我建议您了解De Morgans's laws,了解如何否定或反转条件。
-
另外:你有两个循环,但你从不使用
i索引。 -
哦,是的,你总是检查
List[j][0],当你应该检查List[i][j]时。 -
尽量避免像
for(j=0; j<strlen(str); j++)这样的事情,因为它通常会导致 O(N^2) 复杂度。strlen()必须遍历整个字符串才能找到它的结束字符。