#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; }
明白请采纳