我有一个函数,该函数将一个术语作为输入,在一系列术语中搜索该术语,然后返回匹配的术语的索引。我认为这是一个相当简单的函数,但是由于某些原因,它不会返回低于(6)的期望值。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char terms[10][1024]={"land",
"duck",
"sea",
"chai",
"cars",
"bird",
"flower",
"ear",
"note",
"vent"};
int termFound(char term[1024]){
for (int i=0;i<10;i++){
if (strcmp(terms[i], term)==0){
return i;
}
return -1;
}
}
int main(){
printf("%d\n", termFound("flower"));
}
答案 0 :(得分:1)
编译器警告C4715:'termFound':并非所有控制路径都返回值。
您的函数在到达“花朵”之前的第一次迭代中返回。
return -1;
必须在循环之外。
int termFound(char term[1024]){
for (int i=0;i<10;i++){
if (strcmp(terms[i], term)==0){
return i;
}
}
return -1; // moved down
}
您已经解决了重复char terms[10][1024]
定义的错误。