在我的c代码中找不到错误

时间:2015-07-04 06:55:14

标签: 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;}

我在codeblocks软件上测试它正在编译好但在我执行它时突然结束。控件甚至不输入main()。

1 个答案:

答案 0 :(得分: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);