前言:在写折半排序的时候,出了一个错误,找了一下,终于发现问题了。
程序中我自定了函数,又引用了stdio.h文件,所以一直保证错误
#include<stdio.h>
#define N 10
/*
折半查找:
**/
void main(){
void print(int a[],int n);
int a [N] = {1,2,3,4,5,6,7,8,9,10};
print(a,N);
int m = 0,low = 0,high = N-1,mid = 0,k = -1;
printf("输入查找的元素:");
scanf("%d",&m);
while(low<=high){
mid = (low+high/2);
if(m<a[mid])
high = mid-1;
else
if(m>a[mid])
low = mid+1;
else{
k = mid;
break;
}
}
printf("元素下标为%d
",k);//注意这块
}
void printf(int a[],int n){//将函数名修改成print() 就可以了
for(int i=0;i<n;i++){
if(i%5==0)
printf("
");
printf("%d ",a[i]);
}
}
经过查找找到问题所在,就在我自己定义的函数名printf()和调用函数系统的函数printf()重复的了。所以出现这个问题。