c语言二维数组,打印数组,所有值都是数组最后一个成员值

#include <stdio.h>

void create(){
    int m,n;
    printf("请输入行数m\n");
    scanf("%d",&m);
    printf("请输入列数n\n");
    scanf("%d",&n);
    printf("%d,%d\n",m,n);
    int a[m][n];
    for (int i = 0; i < m; i++){
        for (int j = 0; j < n; j++) {
            printf("请输入矩阵%d%d值\n",i,j);
            getchar();
            scanf("%d", &a[m][n]);    
            printf("%d\n", a[m][n]);
        }
    }
    
    for(int i = 0; i < m; i++) {
        for(int j = 0; j<n; j++){
            printf("%d\t", a[m][n]);
        } 
    }
}
int main(){
    create();
    return 0;
} 

clipboard.png
哪里出错了,谢谢

阅读 4.3k
2 个回答

你最后打印应该是用i,j

for(int i = 0; i < m; i++) {
        for(int j = 0; j<n; j++){
            printf("%d\t", a[i][j]);
        } 
    }

void create(){

int m,n;
printf("请输入行数m\n");
scanf("%d",&m);
printf("请输入列数n\n");
scanf("%d",&n);
printf("%d,%d\n",m,n);
int a[m][n];
for (int i = 0; i < m; i++){
    for (int j = 0; j < n; j++) {
        printf("请输入矩阵%d%d值\n",i,j);
        getchar();
        //这里也应该是a[i][j]
        scanf("%d", &a[i][j]);    
        printf("%d\t", a[i][j]);
    }
}

for(int i = 0; i < m; i++) {
    for(int j = 0; j<n; j++){
        //这里应该是a[i][j]  
        printf("%d\n", a[i][j]);
    } 
}

}
int main(){

create();
return 0;

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题