【问题标题】:Print a 2D array as a grid in C在 C 中将二维数组打印为网格
【发布时间】:2019-11-22 17:20:37
【问题描述】:

我希望将二维数组(用户输入的值)打印为网格。

这是我的代码:

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

    int main(){

       int rowSize = 4;
       int colSize = 4;
       int disp[rowSize][colSize];

       int i, j;
       for(i=0; i<rowSize; i++) {
          for(j=0;j<colSize;j++) {
             printf("Enter value for disp[%d][%d]:", i, j);
             scanf("%d", &disp[i][j]);
          }
      }

       printf("Two Dimensional array elements:\n");
       for(i=0; i<rowSize; i++) {
         for(j=0; j<colSize; j++) {
            printf("%d ", disp[i][j]);
             }
          }

       return 0;
       }

将数组输出为一行数字。如何在每行末尾插入新行?

谢谢

【问题讨论】:

  • 正如您自己所说,您需要在每行末尾插入(打印)换行符。现在想想你如何打印每一行......只是简单的实验可能会比写这个问题更快地为你解决它。

标签: c arrays multidimensional-array output


【解决方案1】:

您可以在打印循环中添加换行符,如下所示:

   printf("Two Dimensional array elements:\n");
   for(i=0; i<rowSize; i++) {
     for(j=0; j<colSize; j++) {
        printf("%d ", disp[i][j]);
         }
         printf("\n");  // <<<<<< added newline
      }

运行代码的示例打印输出:

Two Dimensional array elements:
0 1 2 3 
4 5 6 7 
8 9 10 11 
12 13 14 15 

如果你添加一些标签对齐会更好 - 只需使用printf("%d\t", disp[i][j]);,结果:

Two Dimensional array elements:
0   1   2   3   
4   5   6   7   
8   9   10  11  
12  13  14  15  

【讨论】:

    【解决方案2】:
     for(i=0; i<rowSize; i++) {
         for(j=0; j<colSize; j++) {
            printf("%d ", disp[i][j]);
             }
           printf("\n");
          }
    

    【讨论】:

      【解决方案3】:

      我的代码与其他两个答案相同,但我主张将变量重命名为: numberOfRows 和 numberOfColumns
      这样更容易从逻辑上理解新行应该去哪里。即)在我们完成 1 行列之后。在你学习的时候表达清楚会帮助你更容易地弄清楚逻辑。

      for(i=0; i<numberOfRows; i++)
      {
          for(j=0; j<numberOfColumns; j++) {
              printf("%d ", disp[i][j]);
           }
           printf("\n");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        • 2014-03-25
        • 2021-12-25
        • 2022-12-04
        • 1970-01-01
        • 2011-07-07
        相关资源
        最近更新 更多