Программа C: Генератор случайных матриц сохраняет только последнюю строку (помощь приветствуется!) - PullRequest
0 голосов
/ 07 мая 2020

Я создаю программу, которая манипулирует матрицей. Часть программы заключается в том, что мне нужно создать матрицу со случайными входами.

Однако после создания матрицы и печати каждого значения матрицы для двойной проверки правильности хранения рандомизированных чисел матрица, похоже, хранит только последнюю строку чисел, а затем дублируя его.

Вот скриншот, поясняющий, что я имею в виду: Here is a screenshot to explain what I am referring to:

Вы можете видеть, что он создает матрицу [[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;
}

1 Ответ

0 голосов
/ 07 мая 2020

Вместо

  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];

, чтобы определить ваши matrix и row_m после , вы получили значения m, n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...