为什么要在
if(arr[i]==value)
{
index=i;
break;
中加入break?
if只是一个条件判断后施行命令,不跳出循环会继续对index不断赋值
一直到数组最后值是6,得到判断index=-1;
可以看出这个代码也只能判断数组第一次出现该值的坐标,如果数组包含多个相同的数值就没办法读取多个坐标
如果去掉break;将index判断放到getIndex函数内可以把每个情况读取出来
#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;
// break;
printf("%d在数组中存在,下标为:%d\n",value,index);
}else
{
printf("%d在数组中不存在。\n",value);
}
}
return index;
}
int main()
{
int arr[5]={3,8,9,8,8};
int value = 8;
getIndex(arr , value); //这里应该传什么参数呢?
/* if(index!=-1)
{
printf("%d在数组中存在,下标为:%d\n",value,index);
}
else
{
printf("%d在数组中不存在。\n",value);
}*/
return 0;
}
因为当你判断arr[i]==value后你需要跳出这个循环。