前言:在写折半排序的时候,出了一个错误,找了一下,终于发现问题了。

程序中我自定了函数,又引用了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\n",k);//注意这块 
}

void printf(int a[],int n){//将函数名修改成print() 就可以了
	for(int i=0;i<n;i++){
		if(i%5==0)
			printf("\n");
		printf("%d\t",a[i]);
	}
}

 经过查找找到问题所在,就在我自己定义的函数名printf()和调用函数系统的函数printf()重复的了。所以出现这个问题。