C / C ++无法在for循环中运行for循环

时间:2019-10-13 13:05:24

标签: c++ c dev-c++

这是我的代码:

#include <stdio.h>
/*
CALCULATING INVERSE OF A MATRIX
*/
int main(){

    int matris[3][3];
    int i = 0;
    int j = 0;
    for(i; i<3;i++){

        for(j;j<3;j++){

            scanf("%d", &matris[i][j]);                         
        }
        printf("%d", matris[i][j]);         
    }    
}

我知道它的基本知识,但是我有一个麻烦,我的编译器是Dev-C ++,我的操作系统是Windows 10,当我运行此代码并按1,2,3时,这是我唯一的输出可以看到。

1
2
3
0430
--------------------------------
Process exited after 2.351 seconds with return value 1

我不知道我的错误在哪里,谢谢您的帮助

编辑

我将代码编辑为:

int main(){

    int matris[3][3];
    int i,j;
    for(i = 0; i<3; i++){
        for (j=0;j<3;j++){
            scanf("%d", &matris);
        }
    }

    for(i = 0; i<3; i++){

        for (j=0;j<3;j++){

            printf("%d ", matris);
        }
    }

}

但是我仍然看不到正确的输出。

输出:

1
2   
3
4
5
6
7
8
9
6487536 6487536 6487536 6487536 6487536 6487536 6487536 6487536 6487536

但是当然期望的输出是3x3矩阵和1到9的整数

3 个答案:

答案 0 :(得分:1)

可以,但是您需要将j设置为初始值,然后它才能针对i的每个值进入循环 现在它只经过j循环一次,下次它到达那里时,看到j> 3,所以它跳过了它。

答案 1 :(得分:0)

不要这样:

for(i = 0; i<3; i++){
    for (j=0;j<3;j++){
        scanf("%d", &matris);
    }
}

for(i = 0; i<3; i++){
    for (j=0;j<3;j++){
        printf("%d ", matris);
    }
}

执行此操作:

for(i = 0; i<3; i++){
    for (j=0;j<3;j++){
        scanf("%d", matris[i]+j);
    }
}

for(i = 0; i<3; i++){
    for (j=0;j<3;j++){
        printf("%d ", matris[i][j]);
    }
}

答案 2 :(得分:0)

结果如下:

$ g++ m.cpp
$ ./a.out
1
2
3
04
5
6
41954727
8
9
32764

这是代码:

#include <stdio.h>
/*
CALCULATING INVERSE OF A MATRIX
*/
int main(){

    int matris[3][3];
    int i = 0;
    int j = 0;
    for(i=0; i<3;i++){

        for(j=0;j<3;j++){

            scanf("%d", &matris[i][j]);
        }
        printf("%d", matris[i][j]);
    }
}

它应该工作,但是,我建议不要在printf("%d", matris[i][j]);循环之外使用j,因为j等于3,这有点不确定的行为。

相关问题