qq_曦正_0
2015-11-28 10:40
我的代码是这样写的,value值在数组范围内是么有问题的,可是我输入的值超出了数组范围后,在编译器打印的结果却显示在“10在数组中存在,下标为35”,而且无论我的value值是多少(数组外),都是下标为35。这是为什么?
#include <stdio.h>
int getIndex(int arr[5],int value)
{
int i;
int index;
for(i=0;i<5;i++)
{
/* 请完善数组查询功能 */
if(arr[i]==value)
{
return i;
}
}
return index;
}
int main()
{
int arr[5]={3,12,9,8,6};
int value = 10;
int index = getIndex(arr,value); //这里应该传什么参数呢?
if(index!=-1)
{
printf("%d在数组中存在,下标为:%d\n",value,index);
}
else
{
printf("%d在数组中不存在。\n",value);
}
return 0;
}
#include <stdio.h>
int getIndex(int arr[5],int value)
{
int i;
int index=-1;//改动的
for(i=0;i<5;i++)
{
/* 请完善数组查询功能 */
if(arr[i]==value)
{
return i;
}
}
return index;
}
int main()
{
int arr[5]={3,12,9,8,6};
int value = 10;
int index = getIndex(arr,value); //这里应该传什么参数呢?
if(index!=-1)
{
printf("%d在数组中存在,下标为:%d\n",value,index);
}
else
{
printf("%d在数组中不存在。\n",value);
}
return 0;
}
这是我改动了的代码 就是给index赋值为-1我注释了 改动 你自己找找
C语言入门
926021 学习 · 20793 问题
相似问题