#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 -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;
}
这样做不行吗 为什么运行成功输入却错误了
这样做是可以的,和讲解里的例子就是一模一样了嘛。
题目的答案自动检查说这样不行,主要还是想让学习者考虑一下其它的实现代码吧,稍微变通一下就可以了。
#include <stdio.h>
int getIndex(int arr[],int value)
/*
首先是这一行,你传的第一个参数是arr[5]
如果传的是数组应该传arr[],arr[5]是一个元素
*/
{
int i;
int index;
for(i=0;i<5;i++)
{
/* 请完善数组查询功能 */
if(arr[i]==value)
/*
其次是这个判断句,你写的这个判断句其实没错,但是原题是return index,
所以应该用index保存下标,然后再return index;
*/
{
index=i;
break;
}
}
if(i==5)//这个地方是为了主函数中的判断句,就是那个该元素不存在那个
{
index=-1;
}
return index;
}
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;
}明白请采纳