我的 C 程序只接受一个输入而不是多个输入
My C program is taking only one input instead of multiple input
我是初学者,正在学习C 编程语言。我正在尝试编写一个包含两个矩阵的程序,它将接受输入并显示输出。
我已经为此编写了一个 C 程序,但它只需要一个输入。进行一次输入后,程序将自动终止。
这是我的 C 代码:
#include <stdio.h>
void matrixInput(int rows, int cols, int matrix[rows][cols], int matrixNo) {
printf("Matrix %d input:\n", matrixNo);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Matrix %d [%d, %d]: ", matrixNo, i + 1, j + 1);
scanf("%d", &matrix[i][j]);
}
}
printf("\n");
}
void matrixDisplay(int rows, int cols, int matrix[rows][cols], int matrixNo) {
printf("Matrix %d output:\n", matrixNo);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
}
int main() {
int rows, columns;
printf("Rows: ");
scanf("%d", &rows);
printf("Columns: ");
scanf("%d", &columns);
int matrix1[rows][columns], matrix2[rows][columns];
matrixInput(matrix1, rows, columns, 1);
matrixInput(matrix2, rows, columns, 2);
matrixDisplay(matrix1, row, column, 1);
matrixDisplay(matrix2, row, column, 2);
return 0;
}
为什么会这样?我该如何解决这个问题?
void matrixInput(int rows, int cols, int matrix[rows][cols], int matrixNo)
但是你正在打电话
matrixInput(matrix1, rows, columns, 1);
而它必须是
matrixInput(rows, columns,matrix1, 1);
这些调用中参数的顺序
matrixInput(matrix1, rows, columns, 1);
matrixInput(matrix2, rows, columns, 2);
matrixDisplay(matrix1, row, column, 1);
matrixDisplay(matrix2, row, column, 2);
不符合函数参数声明的顺序
void matrixInput(int rows, int cols, int matrix[rows][cols], int matrixNo) {
和
void matrixDisplay(int rows, int cols, int matrix[rows][cols], int matrixNo) {
此外,在最后两次调用中,使用的标识符中存在拼写错误。您需要使用 rows
和 columns
.
而不是 row
和 column
您需要像这样编写函数调用
matrixInput(rows, columns, matrix1, 1);
我是初学者,正在学习C 编程语言。我正在尝试编写一个包含两个矩阵的程序,它将接受输入并显示输出。
我已经为此编写了一个 C 程序,但它只需要一个输入。进行一次输入后,程序将自动终止。
这是我的 C 代码:
#include <stdio.h>
void matrixInput(int rows, int cols, int matrix[rows][cols], int matrixNo) {
printf("Matrix %d input:\n", matrixNo);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Matrix %d [%d, %d]: ", matrixNo, i + 1, j + 1);
scanf("%d", &matrix[i][j]);
}
}
printf("\n");
}
void matrixDisplay(int rows, int cols, int matrix[rows][cols], int matrixNo) {
printf("Matrix %d output:\n", matrixNo);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
}
int main() {
int rows, columns;
printf("Rows: ");
scanf("%d", &rows);
printf("Columns: ");
scanf("%d", &columns);
int matrix1[rows][columns], matrix2[rows][columns];
matrixInput(matrix1, rows, columns, 1);
matrixInput(matrix2, rows, columns, 2);
matrixDisplay(matrix1, row, column, 1);
matrixDisplay(matrix2, row, column, 2);
return 0;
}
为什么会这样?我该如何解决这个问题?
void matrixInput(int rows, int cols, int matrix[rows][cols], int matrixNo)
但是你正在打电话
matrixInput(matrix1, rows, columns, 1);
而它必须是
matrixInput(rows, columns,matrix1, 1);
这些调用中参数的顺序
matrixInput(matrix1, rows, columns, 1);
matrixInput(matrix2, rows, columns, 2);
matrixDisplay(matrix1, row, column, 1);
matrixDisplay(matrix2, row, column, 2);
不符合函数参数声明的顺序
void matrixInput(int rows, int cols, int matrix[rows][cols], int matrixNo) {
和
void matrixDisplay(int rows, int cols, int matrix[rows][cols], int matrixNo) {
此外,在最后两次调用中,使用的标识符中存在拼写错误。您需要使用 rows
和 columns
.
row
和 column
您需要像这样编写函数调用
matrixInput(rows, columns, matrix1, 1);