Как правильно ввести значения в матрицу? - PullRequest
0 голосов
/ 14 апреля 2019

Я хочу ввести значения в матрицу, но код, который я почему-то использую, «пропускает» значения.Чтобы ввести значения в матрицу 3 X 3 (9 значений), мне нужно набрать 10.

#include<stdio.h>
#include<stdlib.h>
int matrix[3][3];
int i,j /*indexes for loops*/
for(i = 0; i < 3; i++) {
  for(j = 0; j < 3; j++) {
    printf("Enter value for position [%d][%d]: ", i,j);
    scanf("%d ",&matrix[i][j]);
  }
}

Вот что я получил от терминала:

Enter a value for position [0][0]: 0
1
Enter a value for position [0][1]: 0
Enter a value for position [0][2]: 0
Enter a value for position [1][0]: 0
Enter a value for position [1][1]: 0
Enter a value for position [1][2]: 1
Enter a value for position [2][0]: 0
Enter a value for position [2][1]: 0
Enter a value for position [2][2]: 0

Матрица ДЕЙСТВИТЕЛЬНОвыведите следующее:

0  1  0
0  0  0  
1  0  0

но я застрял с 0 для следующих вычислений.

Ответы [ 2 ]

1 голос
/ 14 апреля 2019

Пробел в строке формата указывает scanf () соответствовать нулю или большему количеству пробельных символов, пока совпадение не завершится неудачей.Пробелы (''), символы новой строки ('\ n'), возврат каретки ('\ r') и табуляции ('\ t') относятся к пробельным символам.Когда в конце строки форматирования появляется пробел, scanf () будет пытаться сопоставить пробельные символы из входных данных, пока совпадение не будет найдено.Но функция scanf () может вернуться только в случае сбоя сопоставления или достижения конца файла, поэтому после% d в scanf ("% d", & matrix [i] [j]) указывается пробел.причина этой ошибки.Удалите пробел, и он будет работать нормально.

0 голосов
/ 14 апреля 2019

В вашем scanf есть пробел.Удаление устраняет проблему.

#include<stdio.h>
#include<stdlib.h>
int matrix[3][3];
int i,j /*indexes for loops*/
for(i = 0; i < 3; i++) {
  for(j = 0; j < 3; j++) {
    printf("Enter value for position [%d][%d]: ", i,j);
    scanf("%d",&matrix[i][j]);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...