我的 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) {

此外,在最后两次调用中,使用的标识符中存在拼写错误。您需要使用 rowscolumns.

而不是 rowcolumn

您需要像这样编写函数调用

matrixInput(rows, columns, matrix1, 1);