#c #if-statement #variables #while-loop
Вопрос:
Предполагается, что это таблица умножения от 1 до 6 по оси x и от 1 до 5 по оси y, поэтому у меня есть оператор if, который должен перейти к строке nezt, как только умножение достигнет 6, но он продолжает выполняться, даже если я сброшу условие, которое должно быть выполнено в нем.
#include <stdio.h>
#include <stdlib.h>
int main(){
int mult = 1;
int check = 0;
int res;
while(mult != 6){
if (check <= 6){
res = mult * check;
printf("%d ",res);
check ;
}
if (check > 6 ){
printf("n ");
check = 0;
}
}}
Комментарии:
1.
int check = 0;
объявляет новую переменную. Попробуй простоcheck = 0;
. Ваш цикл никогда не закончится, потомуmult
что он никогда не меняется.2. Попробуйте отладить свой код и проверьте значение
mul
Ответ №1:
if
Оператор заставляет вас выполнять или не выполнять блок.
Например, в вашем коде:
if (check <= 6){
res = mult * check;
printf("%d ",res);
check ;
}
if (check > 6 ){
printf("n ");
int check = 0;
}
Первый блок будет выполнен , когда check <= 6
, второй блок будет выполнен check > 6
… но условие в while
цикле таково mult != 5
… и вы никогда не изменяетесь mult
, поэтому условие всегда верно.
Итак, в дополнение к замечанию уЗуМаКиоБаРуТо о вашей check
переменной, вам также необходимо увеличить mult
:
if (check > 6 ){
printf("n ");
check = 0;
mult ;
}
Комментарии:
1. @TedLyngmo Я понял свою ошибку, спасибо