这是我的代码:
#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的整数
答案 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
,这有点不确定的行为。