【问题标题】:how to print an array as a matrix in C如何在C中将数组打印为矩阵
【发布时间】:2021-07-15 04:29:31
【问题描述】:

所以我试图将这个二维数组打印为矩阵,但它不起作用。任何提示?无论我改变什么,我都无法打印一个全 0 3x3 矩阵

    int main()
        {
        int i, j, m, n, primeira;
        int matrix[10][20];

        printf("Enter number of rows : ");
        scanf("%d", &m);
        printf("Enter number of columns : ");
        scanf("%d", &n);

        /* first input */
        printf("1 ou 0");
            scanf("%d", &primeira);
        if (primeira = 0) {
        matrix [0][0]=0;
matrix [0][1]=0;
matrix [1][0]=0;
matrix [1][1]=0;}




    /* Display the matrix */
    {
            printf("%d\t", matrix[i][j]);
        }
        printf("\n");


    return 0;
}

【问题讨论】:

  • 你显然需要某种循环。你真的尝试过循环编码吗?另外,请正确格式化您的代码,并提供尽您最大努力并至少可以编译的代码。
  • 所以我不能只打印一个数组?
  • 记住= 赋值和== 相等比较之间的区别
  • 你也只初始化了matrix的200个元素中的4个。即使您将其更改为 3 x 3 矩阵,也会留下五个元素未初始化。或者更确切地说,使用当前分配而不是比较,您不会初始化 任何 元素。

标签: arrays c matrix printing


【解决方案1】:

您需要创建一个嵌套循环来显示矩阵。如果你想显示一个 3x3 矩阵,你可以运行这样的东西。

  int matrix[3][3] = { 0 };

  /* Display the matrix */
  for (int i = 0; i < 3; i++) {
     for (int j = 0; j < 3; j++) {
        printf ("%d\t", matrix[i][j]);
     }
     printf ("\n");
  }

【讨论】:

    【解决方案2】:

    关于:

    printf("%d\t", matrix[i][j]);
    

    变量:ij 未初始化!

    建议:

    for( int i =0; i<10; i++ ) 
    { 
        for( int j=0; j<20; j++ ) 
        { 
            printf( "%d ", matrix[i][j] );
        }
        puts( "" ); 
    }  
    

    因为这将打印矩阵的所有元素并在打印矩阵的每一行后移动到新行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2020-10-30
      • 2023-03-25
      • 2016-03-10
      • 2021-11-20
      相关资源
      最近更新 更多