2015-07-04 19 views
-2

發現錯誤不能發現錯誤,請幫助,這是一個C代碼上找到座標平面可能四合院的最低數量不能在我的C代碼

#include <stdio.h> 

int quadrangle(int *,int); 
int min(int,int); 

int main(){ 

int t,i,j,n,p[n][n]; 
printf("\nEnter the number of test cases"); 
scanf("%d",&t); 
for(i=0;i<t;i++){ 
    scanf("%d",&n); 
    for(j=0;j<n;j++){ 
     scanf("%d %d",&p[j][0],&p[j][1]); 
    } 
    printf("%d",quadrangle(&p[0][0],n)); 
} 
return 0; 
} 

int quadrangle(int *p,int len){ 
int f=0,s=0,t=0,fo=0,i; 
for(i=0;i<len;i++){ 
    if(*(p+i*len)>0&&*(p+i*len+1)>0) 
     f++; 
    if(*(p+i*len)>0&&*(p+i*len+1)<0) 
     s++; 
    if(*(p+i*len)<0&&*(p+i*len+1)<0) 
     t++; 
    if(*(p+i*len)<0&&*(p+i*len+1)>0) 
     fo++; 
} 
return min(min(f,s),min(t,fo)); 
} 

int min(int a,int b){ 
if(a>b) return b; 
else return a;} 

我測試的代碼塊它編譯好的軟件,但當我執行它時突然結束。該控件甚至不輸入main()。

回答

1

n未初始化與您共創大小n(猜什麼的n值)的陣列的位置:

int t,i,j,n,p[n][n]; 

聲明數組n被初始化後,即改變

int t,i,j,n,p[n][n]; 

int t,i,j,n; 

,並添加

int p[n][n]; 

scanf("%d",&n);