Почему из моего 2D-массива печатаются случайные числа? - PullRequest
0 голосов
/ 22 апреля 2020

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

Вывод при запуске программы:

How important would you rate Gun reform on a scale of 1-10? 1
How important would you rate Immigration on a scale of 1-10? 2
How important would you rate Abortion on a scale of 1-10? 3
How important would you rate Climate change on a scale of 1-10? 4
How important would you rate Minimum wage on a scale of 1-10? 5
How important would you rate Healthcare on a scale of 1-10? 6
How important would you rate Taxes on a scale of 1-10? 7
Do you want to fill out the poll? Y/N n
0 1 0 0 0 0 0 0 0 0 
0 2 0 0 0 0 0 0 0 0 
0 3 636544736 32600 0 0 0 0 0 0 
0 4 0 0 636545640 32600 1639736080 32764 1639736064 32764 
1700966438 5 631916711 32600 2 0 0 0 0 0 
0 6 0 0 0 0 0 0 0 0 
0 7 0 0 0 0 0 0 0 0

Код, который я написал:

   do{
    int i;

    for (i = 0; i < 7; i++){
      printf("How important would you rate %s on a scale of 1-10? ", *(topics+i));
      scanf(" %d", &rating);

      *(*(responses+i)+1) = *(*(responses+i)+1) + rating;
    }
    printf("Do you want to fill out the poll? Y/N ");
    scanf(" %c", &input);
  } while (input == 'Y' || input == 'y');

  int j;
  int k;
  for (k = 0; k < 7; k++){
    for (j = 0; j < 10; j++){
      printf("%d ", *(*(responses+k)+j));
    }
    printf("\n");
  }

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

1 Ответ

0 голосов
/ 22 апреля 2020

Попробуйте использовать responses[k][j] вместо *(*(responses+k)+j).

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