分段错误编译错误

时间:2017-02-26 18:24:48

标签: c segmentation-fault

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {
long int n,i,j,k,q,sum,w,x;
long int a[100][100];
scanf("%ld",&n);
for(i=0;i<n;i++){
    scanf("%ld",&x);
    for(j=1;j<=x;j++)
        for(k=1;k<=x;k++)
            scanf("%ld",&a[j][k]);
    printf("%ld ",a[1][k-1]);
    for(j=2*x;j>=1;j--){
        sum=0;
        for(q=1,w=j-q-x;q<=x&&w<=x;q++,w++){
            if(w<=0)
                continue;
            sum=sum+a[q][w];
        }
        if(w<=1)
             break;
        printf("%ld ",sum);
    }
    printf("\n");
}

return 0;
}

给定大小为NxN的二维矩阵,打印所有对角线元素的总和。

输入格式

第一行输入包含T个测试用例。每个测试用例的第一行包含N - 矩阵的大小。接下来的N行中的每一行包含N个整数 - 矩阵的元素。

约束

1 <= T <= 100 
1 <= N <= 100 
-100 <= ar[i][j] <= 100 

输出格式

对于每个测试用例,打印所有对角线元素的总和,用换行符分隔。请参考样本以获得更清晰

编译器返回分段错误错误。我怎样才能纠正它?

0 个答案:

没有答案