其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#include<stdio.h>
int Retrieve(int array[],int length,int x)/*形参x直接传值就可以了*/
int main()
{
int *a,x
int length,i
scanf("%d",&length)
a = (int)malloc(sizeof(int)*length)/*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/
C代码和运行结果如下:
输入5,成功输出了其在给定数组中的下标为4,结果正确,望采纳~
附源码:
#include <stdio.h>
int search(int a[], int n, int x) { // 返回数组a[]中x的下标
int i
for (i = 0i <ni++) {
if (a[i] == x)
return i
}
return -1// 数组中没有x则返回-1
}
int main() {
int x, a[10] = {7,9,3,4,5,2,1,6,10,8}
scanf("%d", &x)// 用户输入数x
printf("%d ", search(a, 10, x))// 输出x在数组中的下标
return 0
}