在C中将2D数组打印为网格

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

这是我的代码:

    #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;
       }

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

谢谢

taodaidai 回答:在C中将2D数组打印为网格

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

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

   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  
,

我的代码与其他两个答案相同,但是我主张将变量重命名为: numberOfRows和numberOfColumns
     这样,从逻辑上更容易理解新行应该去哪里。即)我们完成了1行列。在学习时保持露骨,将有助于您更轻松地弄清楚逻辑。

for(i=0; i<numberOfRows; i++)
{
    for(j=0; j<numberOfColumns; j++) {
        printf("%d ",disp[i][j]);
     }
     printf("\n");
}
本文链接:https://www.f2er.com/3049189.html

大家都在问