在数组中有两个相同数字时,为何运行结果不对了?
#include <stdio.h>
int main()
{
int arr[5]={3,12,8,8,6};
int i;
int value =8;
int index;
for(i=0;i<5;i++)
{
/* 请完善数组查询功能 */
if (arr[i] == value){
index = i;
} else{
index = -1;
}
}
printf("index=%d\n",index);
return 0;
}
这段程序,我将数组中的8变为了两个,在编译运行时,输出结果反而变成了-1 不知怎么回事。当然,也能解决,一个方案是,在index=1;的语句后,增加一个break;输出结果为2(第一个出现的符合条件的数的下标). 第二个方案是直接将else语句删掉,输出结果就会变成3(最后一个出现的符合条件的数的下标)。