各位大大午安:
真的是好冷喔~
事情是這樣的C/C++的CODE跑不出來+看不出問題
是否可以請各位大神給個方向:
程式碼:
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN
int binary(int*data,int low,int high,int target){
int middle;
if(low > high)
return -1;
else{
middle = (low+high) /2;
if(target == data[middle])
return middle;
else if (target<data[middle])
return binary(data,low,middle-1,target);
else
return binary(data,middle+1,high,target);
}
}
int main(){
int data[MAX_LEN]=
{1,8,9,15,25,33,42,66,74,81,90};
int i,index,target,c;
printf("原始陣列:");
for (i = 0 ; i<MAX_LEN ; i++ )
printf("[%d]",data[i]);
printf("\n");
target=0;
while (target !=-1){
printf("請輸入搜尋值(-1結束)==>");
scanf("%d",&target);
index=binary(data,0,MAX_LEN-1,target);
if(index !=-1)
printf("搜尋到鍵值:%d(%d)\n",target,index);
else
printf("沒有搜尋到鍵值:%d\n",target);
}
return 0;
}
編輯器顯示的錯誤如下,可以想不出來怎麼改:
先跟各位大神說謝謝了
int data[MAX_LEN]
改成
int data[]
for (i = 0 ; i<MAX_LEN ; i++ )
改成
for (i = 0 ; i<sizeof(data)/sizeof(int) ; i++ )