C语言 用scanf初始化二维数组并元素互换


#include <stdio.h>
int main()
{
    int a[2][3];
    int b[3][2], i, j;
    printf("array a:\n");

    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf_s("%d", &a[i][j]);
            printf("%5d", a[i][j]);
            b[j][i] = a[i][j];
        }
        printf("\n");
    }
    printf("array  b:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 2; j++)
        {
            printf("%5d", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}

题目:通过scanf完成二维数组初始化,再将二维数组行和列的元素互换(转置),存到另一个二维数组中。

img

代码是正确的,高版本使用 scanf_s,低版本使用 scanf

 
#include <stdio.h>
int main()
{
    int a[2][3];
    int b[3][2], i, j;
 
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &a[i][j]);
        }
        printf("\n");
    }
    
    printf("array a:\n");
 
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("%5d", a[i][j]);
            b[j][i] = a[i][j];
        }
        printf("\n");
    }
    
    printf("array  b:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 2; j++)
        {
            printf("%5d", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}
 

供参考:

#include <stdio.h>
int main()
{
    int a[2][3];
    int b[3][2], i, j;
    printf("input array  a:\n");
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf_s("%d", &a[i][j]);
            b[j][i] = a[i][j];
        }
    }
    printf("array  a:\n");
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("%5d", a[i][j]);
        }
        printf("\n");
    }
    printf("array  b:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 2; j++)
        {
            printf("%5d", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}