如何使用多维数组

时间:2016-02-01 14:06:08

标签: c multidimensional-array

问题是输出必须是从3x5表到5x3,如下所示

由此:

A 90 50 100 10
B 60 100 20 50
C 80 70 100 75

对此:

A    B    C
90   60   80
50   100  70
100  20   100
10   50   75

它让我对如何获得输出感到困惑。

这是我到目前为止所做的代码:

 char n[3]={'A','B','C'};
 int x, y, s[3][4]={90,50,100,10,60,100,20,50,80,70,100,75};

 for(x=0;x<3;x++)
 {
      printf("%c\t",n[x]);
      for(y=0;y<4;y++)
      { 
            printf("%d\t",s[x][y]);
      }
      printf("\n");
 }

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

你只需要首先打印字符数组,然后交换y和x,只需将其输出即可。试试这个:

for(x=0; x<3; x++) printf("%c\t", n[x]); //print the char array first
printf("\n");

 for(y=0;y<4;y++)
 {
      for(x=0;x<3;x++)printf("%d\t",s[x][y]);
      printf("\n");
 }

答案 1 :(得分:0)

你的意思是说明在演示程序中显示如下吗?

#include <stdio.h>

#define Rows    3
#define Cols    4

int main( void )
{
    char n[Rows] = { 'A', 'B', 'C' };
    int s[Rows][Cols] = 
    {
        { 90, 50, 100, 10 }, { 60, 100, 20, 50 }, { 80, 70, 100, 75 }
    };

    for ( int i = 0; i < Rows; i++ ) printf( "%3c ", n[i] );
    printf( "\n" );

    for ( int j = 0; j < Cols; j++ )
    {
        for ( int i = 0; i < Rows; i++ ) printf( "%3d ", s[i][j] );
        printf( "\n" );
    }
}

程序输出

  A   B   C 
 90  60  80 
 50 100  70 
100  20 100 
 10  50  75