【问题标题】:C program: Random matrix generator only saves last row (help appreciated!)C 程序:随机矩阵生成器仅保存最后一行(感谢帮助!)
【发布时间】:2020-05-07 07:00:39
【问题描述】:

我正在创建一个操作矩阵的程序。 该程序的一部分是我需要生成一个带有随机输入的矩阵。

但是,在生成矩阵并打印矩阵的每个值以仔细检查随机数字是否正确存储时,矩阵似乎只存储最后一行数字,然后复制它。

这是解释我所指内容的屏幕截图:

您可以看到它创建了矩阵 [[3,6][7,5]] 但它只显示为 [[7,5][7,5]]

这是我隔离问题的代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
  int i, j, m, n, row, col;
  int sum = 0, row_i=0, col_i=0;

  int matrix[m][n];
  int row_m[m];

  printf("Enter m\n");
  scanf("%d", &m);

  printf("Enter n\n");
  scanf("%d", &n);

  for(i = 0; i < m; i++){
    for(j = 0; j < n; j++){
      matrix[i][j] = rand()%10;
      printf("%d  ",matrix[i][j]);
    }
    printf("\n");
  }

  printf("%d\n", matrix[0][0]);
  printf("%d\n", matrix[0][1]);
  printf("%d\n", matrix[1][0]);
  printf("%d\n", matrix[1][1]);

  return 0;
}

【问题讨论】:

  • 您需要在从用户那里获得mn 之后声明数组。
  • @Jessica Donley;这些声明 int matrix[m][n]; int row_m[m];无效,因为变量 m 和 n 未初始化。
  • @Barmar 你修好了!哈哈,我还有很长的路要学,但非常感谢你的帮助。

标签: c matrix


【解决方案1】:

而不是

  int matrix[m][n];
  int row_m[m];

  printf("Enter m\n");
  scanf("%d", &m);

  printf("Enter n\n");
  scanf("%d", &n);

使用

  printf("Enter m\n");
  scanf("%d", &m);

  printf("Enter n\n");
  scanf("%d", &n);

  int matrix[m][n];
  int row_m[m];

定义你的matrixrow_m你得到mn的值。

【讨论】:

    猜你喜欢
    • 2015-06-27
    • 2012-09-24
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    相关资源
    最近更新 更多