在c中读取和打印矩阵

时间:2018-05-25 10:21:04

标签: c matrix

我正在尝试读取并打印c中的矩阵, 但它不能正常工作。

#include<stdio.h>

void main()
{
 int l=0;
 scanf("%d",&l);  
 int matrix[l-1][l-1];

 for(int i=0;i<l;i++)
 {
   for(int j=0;j<l;j++)
   {
     scanf("%d",&matrix[i][j]);
   }
 }

printf("\n");
 for(int i=0;i<l;i++)
 {
   for(int j=0;j<l;j++)
   {
     printf("%d ",matrix[i][j]);
   }
   printf("\n");
 }

}

输入:
4
0 0 1 0
1 0 1 1
0 0 0 0
2 0 0 0
该程序显示输出:
0 0 1 1
1 0 1 0
0 0 0 2
2 0 0 0

2 个答案:

答案 0 :(得分:3)

int matrix[l-1][l-1];不正确。您需要指定数组大小,并且需要l。然后,您获得索引0...l-1,但大小为l

int matrix[l][l];

此外,即使这可能不是问题,也要检查scanf的返回值,并在出错时执行某些操作,甚至只是中止。所以scanf行可以是:

if(scanf("%d",&matrix[i][j]) != 1) { 
    printf("Input parse error for matrix[%d][%d]\n", i, j); 
    return;
}

阅读scanf文档以了解其返回值。

答案 1 :(得分:0)

声明了变量int martix[l-1][l-1];,但程序中使用了matrix。 检查变量的拼写。