在学习c语言的时候,发现函数无法识别。将函数原型声明放在上方,函数放在最后运行出错,但是将函数输入在上方,运行正常。函数声明格式也没错,不知道怎么回事。
#include<stdio.h>
int xun(int key,int a[],int changdu);
int main(void){
int x;
int a[]={1,3,5,456,456,234,567,78,563,22,1,4,5,6,7,8};
int loc;
printf("请输入x\n" );
scanf("%d",&x);
loc=xun(x,a,sizeof(a)/sizeof(a[10]));
if(loc!=-1){
printf("%d %d",x,loc);
}else{
printf("错误");
}return 0;
int xun(int key,int a[],int changdu){
int ret=-1;
int i;
for(i=0;i<changdu;i++){
if(a[i]==key){
ret=i;
break;
}
} return ret;
}
}
数组函数训练.c:(.text+0xac): undefined reference to `xun'
对了一下函数声明格式,应该是没错的,函数名称也没有打错。把函数放在刚开始的地方就可以运行了。
了解原因
xun函数写在main函数里面了
#include<stdio.h>
int xun(int key,int a[],int changdu);
int main(void){
int x;
int a[]={1,3,5,456,456,234,567,78,563,22,1,4,5,6,7,8};
int loc;
printf("请输入x\n" );
scanf("%d",&x);
loc=xun(x,a,sizeof(a)/sizeof(a[10]));
if(loc!=-1){
printf("%d %d",x,loc);
}else{
printf("错误");
}
return 0;
}
int xun(int key,int a[],int changdu){
int ret=-1;
int i;
for(i=0;i<changdu;i++){
if(a[i]==key){
ret=i;
break;
}
}
return ret;
}
你把xun定义到main里面了,拿出来