慕粉3706100
2016-09-01 19:01
#include <stdio.h>
int getIndex(int arr[5],int value)
{
int i;
int index;
for(i=0;i<5;i++)
{
/* 请完善数组查询功能 */
if(arr[i]==value)
index=i;
else
index=-1;
}
return index;
}
int main()
{
int arr[5]={3,12,9,8,6};
int value = 8;
int index = getIndex(arr,value); //这里应该传什么参数呢?
if(index!=-1)
{
printf("%d在数组中存在,下标为:%d\n",value,index);
}
else
{
printf("%d在数组中不存在。\n",value);
}
return 0;
}
使用if-else的话,除非你要查询的数是数组最后一个元素,最后index的值可能会是你预期的那样。 然而这种逻辑在这里是不恰当的,因为当查询到有这个元素的时候, 执行:index = i; 如果这个所查的数不是数组最后一个元素时,程序会继续执行,当下一个元素不是所要查询的数时, 执行:index = -1; 所以就算你查到有这个数,index的值也不会是预期的值
C语言入门
926027 学习 · 20793 问题
相似问题