首先我写了一个反转矩阵的程序...但现在我想在函数中分离第一个程序,现在它有一个我无法发现的错误
#include <stdio.h>
#include <time.h>
#define Row 2
#define Column 3
int printb(int board[2][3]);
int revrsboard(int board1[2][3],int board2[3][2]);
int main(){
int board1[Row][Column]={ {1,2,3}, // ο αρχικος πινακας
{4,5,6}
};
int board2[Column][Row]={0};
int printb(board1); //ektyposh pinaka
printf("\n");
int revrsboard(board1,board2); //anastyrofh kai ektyposh
return 0;
}
//print 1
int initb(int board[2][3]){
int k,l ;
for (k=0;k<2;k++){
for(l=0;l<3;l++){
printf("%4d |",board[k][l]);
}
printf("\n");
}
}
// reversing print
int revrsboard(int board1[Row][Column],int board2[Column][Row]) {
int i=0 ,j=0,k,l ;
for(i=0;i<Row;i++){
for(j=0;j<Column;j++){
board2[j][i]=board1[i][j];
}
}
for (k=0;k<3;k++){
for(l=0;l<2;l++){
printf("%4d |",board2[k][l]);
}
printf("\n");
}
}
首先我只使用了主要功能,程序运行完美。
但是我这次想使用更多函数重写我的程序......当我编译并运行它时,它什么也打印不出来
所以我需要一些帮助来弄清楚如何正确使用函数和多维矩阵
函数中的这一行
main
int revrsboard(board1,board2); //anastyrofh kai ektyposh
不调用函数。它只是声明这个函数存在,并且如果被调用的话将返回一个
int
。
要调用该函数,只需调用:
revrsboard(board1,board2); //anastyrofh kai ektyposh
(前面没有
int
)
此外,您还声明函数
revrsboard
在完成时将返回 int
值。但函数体中没有 any return 语句。
我建议你改成
void revrsboard(int board1[Row][Column],int board2[Column][Row]);
,表示该函数没有返回值。
int
和 printb
的函数调用前面删除类型
reversboard
initb
到 printb
int
,因此将 return 0;
添加到每个函数的末尾或将返回类型更改为 void
。您最终会得到类似以下内容的编译和运行结果:
#include <stdio.h>
#include <time.h>
#define Row 2
#define Column 3
int printb(int board[2][3]);
int revrsboard(int board1[2][3], int board2[3][2]);
int main() {
int board1[Row][Column] = {
{
1,
2,
3
}, // ο αρχικος πινακας
{
4,
5,
6
}
};
int board2[Column][Row] = {
0
};
//int printb(board1); //ektyposh pinaka
printb(board1); //ektyposh pinaka
printf("\n");
//int revrsboard(board1,board2); //anastyrofh kai ektyposh
revrsboard(board1, board2); //anastyrofh kai ektyposh
return 0;
}
//print 1
int printb(int board[2][3]) {
int k, l;
for (k = 0; k < 2; k++) {
for (l = 0; l < 3; l++) {
printf("%4d |", board[k][l]);
}
printf("\n");
}
return 0;
}
// reversing print
int revrsboard(int board1[Row][Column], int board2[Column][Row]) {
int i = 0, j = 0, k, l;
for (i = 0; i < Row; i++) {
for (j = 0; j < Column; j++) {
board2[j][i] = board1[i][j];
}
}
for (k = 0; k < 3; k++) {
for (l = 0; l < 2; l++) {
printf("%4d |", board2[k][l]);
}
printf("\n");
}
return 0;
}