八戒m-y 2024-03-13 12:45 采纳率: 47.6%
浏览 13

输出二维数组为什么是一串数字?

#输出二维数组为什么是一串数字而不是具体的数呢

#include <stdio.h>

int main() {
    int a[2][3],b[3][2];
    int i,j;
    for (i = 0; i < 2; i++) {
        for ( j = 0; j < 3; j++) {
            printf("a[%d][%d]=",i,j);
            scanf("%d",&a[i][j]);
        }
    }
    printf("输出二维数组");
    for (i = 0; i <2; i++) {
        for (j = 0; j < 3; j++) {
            printf("%d\t",&a[i][j]);
        }
        printf("\n");

    }
    for (i = 0 ; i <2 ; ++i) {
        for ( j = 0; j < 3; ++j) {
            b[j][i]=a[i][j];
        }
    }
    printf("输出转换后的二维数组\n");
    for ( i = 0; i < 3; ++i) {
        for (j = 0; j < 2; ++j) {
            printf("%d\t",b[i][j]);

        }
        printf("\n");

    }
    return 0;
}


img

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2024-03-13 12:45
    关注

    八戒m-y 中午好🌞🌞🌞
    本答案参考ChatGPT-3.5

    输出二维数组为一串数字的原因是在打印二维数组的循环中使用了错误的格式化字符串和参数。 在循环中使用了printf函数来打印二维数组,但是却使用了错误的格式化字符串"%d\t"。正确的格式化字符串应该是"%d ",即去掉制表符"\t"的部分。

    这是错误的代码部分:

    printf("%d\t", &a[i][j]);
    

    这是修正后的代码部分:

    printf("%d ", a[i][j]);
    

    解决方案:

    1. 修正格式化字符串的错误,将"%d\t"修改为"%d "。
    2. 重新编译和运行程序。

    修改后的代码如下:

    #include <stdio.h>
    
    int main() {
        int a[2][3],b[3][2];
        int i,j;
        
        for (i = 0; i < 2; i++) {
            for ( j = 0; j < 3; j++) {
                printf("a[%d][%d]=", i, j);
                scanf("%d", &a[i][j]);
            }
        }
        
        printf("输出二维数组\n");
        for (i = 0; i < 2; i++) {
            for (j = 0; j < 3; j++) {
                printf("%d ", a[i][j]);
            }
            printf("\n");
        }
        
        for (i = 0; i <2 ; ++i) {
            for (j = 0; j < 3; ++j) {
                b[j][i] = a[i][j];
            }
        }
        
        printf("输出转换后的二维数组\n");
        for (i = 0; i < 3; ++i) {
            for (j = 0; j < 2; ++j) {
                printf("%d ", b[i][j]);
            }
            printf("\n");
        }
        
        return 0;
    }
    

    这样修改后,输出的二维数组就会以具体的数值形式显示出来,而不是一串数字了。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月13日