Код ниже компилируется, однако, когда я его запускаю, у меня есть ошибка, вызывающая бесконечный цикл. Цикл даже не добирается до scanf, где я должен принимать новое значение, а просто выводит подсказку. Что именно я сделал неправильно, чтобы вызвать эту проблему.Проблема с бесконечным контуром в c
#include <stdio.h>
#include <stdbool.h>
//variables
bool flag = false;
int input = 0;
//function protoypes
void get_input(void);
bool is_valid(int);
void print_pattern(int number);
int main(){
get_input();
print_pattern(input);
return 0;
}
void get_input(){
while(flag == false){
printf("please enter an odd number betwen 1 and 9\n");
scanf("%d", &input);
if(is_valid(input)){
flag = true;
}else{
flag = false;
}
}
}
bool is_valid(int number){
if(number == 1 || number == 3 || number == 5 || number == 7 || number == 9){
return true;
}else{
return false;
}
}
void print_pattern(int number){
int i = 0;
for(i = 0; i < number; i++){
printf("%s",i);
}
}
Бесконечный цикл происходит, если ваш вход не является допустимым числом, не так ли? –
Это делает для каждого числа действительным или недействительным – Kevin
@Kevin, закройте свой компилятор, затем откройте его и запустите этот код еще раз. Он не входит в бесконечный цикл на моем. (какой компилятор вы используете в любом случае) –