c - 在c中读取和打印矩阵

标签 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

最佳答案

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 文档以了解其返回值。

关于c - 在c中读取和打印矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526965/

相关文章:

c++ - 英特尔线程 C API

c - 数独布局与 malloc 崩溃

r - 通过 R 中的特定行名称逐行提取所有列值

matrix - 在 Vuforia 中获取纯 View 矩阵

python - 在 Tensorflow 中将一组常量(一维数组)与一组矩阵(三维数组)相乘

c - 字节寻址存储器和字寻址

c - lua中如何实现接口(interface)?

c - 未定义对 'environ' 的引用?

如果行/列名称出现在列表中,则用 NA 替换矩阵中的值

c - 如何在C中显示矩阵