Код запрашивает на одно значение больше, чем нужно - C (СИ)
Формулировка задачи:
Есть вот такой код но при выполнение программы спрашивает на одно больше значение . Например я хочу создать матрицу 2х3 программа должна дать ввести только 6 символов а даёт ввести 7 .Как это исправить?
int i, j,a=0,pr=1;
int S,T;
int mas[50][50];
setlocale (LC_ALL, "RUS");
printf ("Ввелите количество строк\n");
scanf_s("%d",&S);
if (S==0 ){
printf( "Построение невозможно\n" );
printf("Для выхода из программы нажмите любую кнопку\n");
_getch();
return 0;}
else{
printf("Введите количесво столбцов\n");
scanf_s("%d",&T);
if (T==0){
printf("Построение невозможно");
printf("Для выхода из программы нажмите любую кнопку\n");
_getch();
return 0;}
else{
printf("Введите числа через 'Enter'\n");
for ( i = 0; i < S; i++ ) {
for ( j = 0; j < T; j++ ){
scanf_s("%d ", &a);
mas[i][j]=a;
a++;
pr*=mas[i][j];
}
}
printf( "Вот такой массив у нас получился:\n" );
for ( i = 0; i < S; i++ ) {
for ( j = 0; j < T; j++ )
{
printf( "%d ", mas[i][j] );
}
printf( "\n" );
}
printf("Результат=%d",pr);
_getch();
}
}
}Решение задачи: «Код запрашивает на одно значение больше, чем нужно»
textual
Листинг программы
scanf_s("%d", &a);
Объяснение кода листинга программы
- Код использует функцию scanf_s для ввода значения переменной
a. - Форматный спецификатор
%dуказывает, что вводится целочисленное значение. - Функция scanf_s пытается прочитать целочисленное значение и сохранить его в переменной
a. - Код не проверяет, успешно ли было выполнено чтение значения.