#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;
return index ;
break;
}
}
return -1;
}
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;
}
符合条件返回之后,不是函数就得出结果不用循环了吗?为什么还要加break;
函数有且只能返回一个返回值 所以执行到第一个return就返回 不会执行第二个return
if(arr[i]==value)
{
index=i;
break;
}
}
return -1;
}
如果我这样执行的 无论何时都是返回-1,在此 break只是终止循环 并不返回一个值 往下运行才能返回一个-1
而你的是先返回一个index 再终止循环
如果你不加break 就跳出循环执行return-1;如果符合条件先执行return index 再终止运行 不往下运行则返回的值是index