簡體   English   中英

打印 2 個數組(矩陣)時出現意外的 output

[英]Unexpected output while printing 2 array (matrix)

output 僅打印矩陣的少數元素,以錯誤的順序我認為打印循環有問題但無法弄清楚

#include <stdio.h>

int main()
{
    int x=0, y=0;
    int a[x][y];
    printf("enter the number of rows in first matrix:\n");
    scanf("%d", &x);
    printf("enter the number of columns in first matrix:\n");
    scanf("%d", &y);
    printf("enter elements of first matrix\n");
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            printf("enter element %d %d\n", i, j);
            scanf("%d", &a[i][j]);
        }
    }
    for (int p = 0; p < x; p++)
    {
        for (int q = 0; q < y; q++)
        {
            printf("%d\t", a[p][q]);
        }
        printf("\n");
    }

    return 0;
}

您在接收矩陣的大小之前聲明矩陣(您是變量 x 和 y)。 在您的代碼中,矩陣被聲明為 a[0][0]。

解決方案:

#include <stdio.h>

int main() {
    int x, y;
    printf("enter the number of rows in first matrix:\n");
    scanf("%d", &x);
    printf("enter the number of columns in first matrix:\n");
    scanf("%d", &y);
    int a[x][y];
    printf("enter elements of first matrix\n");
    for (int i = 0; i < x; i++) {
        for (int j = 0; j < y; j++) {
            printf("enter element %d %d\n", i, j);
            scanf("%d", &a[i][j]);
        }
    }
    for (int p = 0; p < x; p++) {
        for (int q = 0; q < y; q++) {
            printf("%d\t", a[p][q]);
        }
        printf("\n");
    }

    return 0;
}

您正在使用 0 行和 0 列初始化二維數組。
您需要將int a[x][y]向下移動到scanf("%d", &y);

#include <stdio.h>

int main() {
    int x, y;
    printf("enter the number of rows in first matrix:\n");
    scanf("%d", &x);
    printf("enter the number of columns in first matrix:\n");
    scanf("%d", &y);
    int a[x][y];
    printf("enter elements of first matrix\n");
    for (int i = 0; i < x; i++) {
        for (int j = 0; j < y; j++) {
            printf("enter element %d %d\n", i, j);
            scanf("%d", &a[i][j]);
        }
    }
    for (int p = 0; p < x; p++) {
        for (int q = 0; q < y; q++) {
            printf("%d\t", a[p][q]);
        }
        printf("\n");
    }

    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM