例子里也没有break,为什么题里的for就得用break?
如果不用break;跳出,就得把相同数放在数组最后让程序自己跳出:
#include <stdio.h>
int getIndex(int arr[4],int value)
{
int i;
int index;
for(i=0;i<4;i++)
{
/* 请完善数组查询功能 */
if(arr[i]==value)
{
index=i;
//break;
}
else
{
index=-1;
}
}
return index;
}
int main()
{
int arr[4]={3,12,9,8};
int value = 8;
int index = getIndex(arr , value); //这里应该传什么参数呢?
if(index!=-1)
{
printf("%d在数组中存在,下标为:%d\n",value,index);
}
else
{
printf("%d在数组中不存在。\n",value);
}
return 0;
}
因为例子里直接返回的i或者-1,其中return=-1是在for循环外的,即要么在循环结束前就返回了一个i,要不循环完后没有满足条件返回-1,例题返回的index ,是在循环里的,所以我们要先给献给index赋值,break的作用是跳出这个循环,如果不要break那么返回的永远是-1,而用break即如果存在arr【i】=value,就给index赋值为i,也不需要在检录其它的了