C 在第二条对角线下打印矩阵和数字
我的任务是打印从键盘扫描的整数矩阵,然后使用单独的函数打印第二条对角线下的数字。我的代码如下所示:C 在第二条对角线下打印矩阵和数字,c,matrix,printing,C,Matrix,Printing,我的任务是打印从键盘扫描的整数矩阵,然后使用单独的函数打印第二条对角线下的数字。我的代码如下所示: #include <stdio.h> #include <stdlib.h> //array[n][n] = 2D array of n rows and n columns //n = number of rows and columns void printmatrix(int n, int array[n][n]){ for(int i = 0; i <
#include <stdio.h>
#include <stdlib.h>
//array[n][n] = 2D array of n rows and n columns
//n = number of rows and columns
void printmatrix(int n, int array[n][n]){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
printf("%d ", array[i][j]);
}
printf("\n");
}
return;
}
void undersdiagonal(int n, int array[n][n]){
for(int i = 1; i < n; i++){
/**/
for(int j = 1; (j < n); j++){
printf("%d ", array[i][j]);
}
}
return;
}
int main(){
int n;
scanf("%d", &n);
int integermatrix[n][n];
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
scanf("%d", &integermatrix[i][j]);
}
}
printf("The entered matrix is:\n");
//calls first function to print matrix
printmatrix(n, integermatrix);
printf("Under the secondary diagonal:\n");
//calls second function to print numbers under main diagonal
undersdiagonal(n,integermatrix);
printf("\n");
return 0;
}
3
1
2
3
4
5
6
7
8
9
The entered matrix is:
1 2 3
4 5 6
7 8 9
Under the secondary diagonal:
5 6 8 9
我的输入如下所示:
#include <stdio.h>
#include <stdlib.h>
//array[n][n] = 2D array of n rows and n columns
//n = number of rows and columns
void printmatrix(int n, int array[n][n]){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
printf("%d ", array[i][j]);
}
printf("\n");
}
return;
}
void undersdiagonal(int n, int array[n][n]){
for(int i = 1; i < n; i++){
/**/
for(int j = 1; (j < n); j++){
printf("%d ", array[i][j]);
}
}
return;
}
int main(){
int n;
scanf("%d", &n);
int integermatrix[n][n];
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
scanf("%d", &integermatrix[i][j]);
}
}
printf("The entered matrix is:\n");
//calls first function to print matrix
printmatrix(n, integermatrix);
printf("Under the secondary diagonal:\n");
//calls second function to print numbers under main diagonal
undersdiagonal(n,integermatrix);
printf("\n");
return 0;
}
3
1
2
3
4
5
6
7
8
9
The entered matrix is:
1 2 3
4 5 6
7 8 9
Under the secondary diagonal:
5 6 8 9
输出如下所示:
#include <stdio.h>
#include <stdlib.h>
//array[n][n] = 2D array of n rows and n columns
//n = number of rows and columns
void printmatrix(int n, int array[n][n]){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
printf("%d ", array[i][j]);
}
printf("\n");
}
return;
}
void undersdiagonal(int n, int array[n][n]){
for(int i = 1; i < n; i++){
/**/
for(int j = 1; (j < n); j++){
printf("%d ", array[i][j]);
}
}
return;
}
int main(){
int n;
scanf("%d", &n);
int integermatrix[n][n];
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
scanf("%d", &integermatrix[i][j]);
}
}
printf("The entered matrix is:\n");
//calls first function to print matrix
printmatrix(n, integermatrix);
printf("Under the secondary diagonal:\n");
//calls second function to print numbers under main diagonal
undersdiagonal(n,integermatrix);
printf("\n");
return 0;
}
3
1
2
3
4
5
6
7
8
9
The entered matrix is:
1 2 3
4 5 6
7 8 9
Under the secondary diagonal:
5 6 8 9
但我希望输出是:
The entered matrix is:
1 2 3
4 5 6
7 8 9
Under the secondary diagonal:
6 8 9
我可以在函数中的“for”循环中的“for”循环中更改什么
void undersdiagonal(int n, int array[n][n]).
void undersdiagonal(int n, int array[n][n])
?钥匙的内环为
对角下方的:
按照目前编写的,for(int j=1;(j
每次都从第二列(column1
)开始。它需要从每行的不同列开始
- 对于3×3矩阵,第二行(行
1
)将从最后一列(列2
)开始。对于4×4矩阵,第二行(行1
)将从最后一列(列3
)开始…因此,起始列(j
)与矩阵大小之间存在直接关系:n
- 每次行号向上一次,起始列向下一次。因此,起始列(
j
)和行之间存在反向关系:-i
把这两部分放在一起,你就得到了intj=n-i;
第二对角线不是357
吗?第二对角线下是689
?是的,但是我的代码也打印了5