誰能幫我看看我這個是什麼問題,為什麼運行之後崩潰,而且警告說的是什麼意思?
# include<stdio.h>
int erfen(int x , int v[], int n ){
int low = 0 ;
int high = n - 1 ;
int mid ;
while( low <= high){
mid = ( low + high) / 2 ;
if(x > v[mid])
low = mid + 1 ;
else if( x < v[mid])
high = mid - 1 ;
else
return mid ;
}
return -1 ;
}
main(){
int x ;
int n ;
int c ;
int i ;
int v[n];
printf("請輸入你要找的數\n");
scanf("%d",&x);
printf("請輸入最大的范圍\n");
scanf("%d",&n);
for( i = 0 ; i<= n -1 ; i++ ){
v[i] = i ;
}
c = erfen(x ,v[n - 1], n );
if(c == -1)
printf("抱歉,沒有找到你需要的信息\n");
else
printf("你要找到的信息在第%d個",c);
}
v數組沒有分配內存,不支持v[n]這種形式,n都未知怎麼分配內存?