以下这段代码有什么问题:int LocateElem(SqList *L,int e){ int Len = L -> length; for (int i=0;i<Len;i++){ if (L -> data[i]==e){ printf("%d",i); return 0; } printf("查无此元素"); return 0; } }
时间: 2023-02-08 17:19:26 浏览: 89
主元素问题代码
这段代码存在以下问题:
1. 在循环结束之前,总会输出 "查无此元素"。因为当数组中不存在要查找的元素时,程序会在循环结束之前就输出 "查无此元素"。所以如果数组中存在要查找的元素,程序会输出两条信息:第一条是正确的位置,第二条是 "查无此元素"。
2. 当数组中不存在要查找的元素时,程序会直接返回 0。这样做并不能表明程序已经结束,也不能表明数组中不存在要查找的元素。
建议改为以下代码:
```
int LocateElem(SqList *L,int e){
int Len = L -> length;
for (int i=0;i<Len;i ){
if (L -> data[i]==e){
printf("%d",i);
return 1; // 表示查找成功
}
}
printf("查无此元素");
return 0; // 表示查找失败
}
```
阅读全文