Мой псевдокод:
Наилучший случай: 1) Запросить у пользователя число 2) Проверить, является ли ввод пользователя числовым значением 3) Если ввод пользователя действителен, выполнять функции floor, round и ceil для пользователяinput 4) Отображение значений floor, round и ceil для пользовательского ввода
В худшем случае: 1) Запросите у пользователя число 2) Проверьте, является ли пользовательский ввод числовым значением 3) Если ввод пользователя неверен, спросите,пользователь хочет повторить попытку с выбором Y / N 4) Если пользователь говорит «да», вернитесь к 1), если пользователь говорит «нет» - прекратить
#include <stdio.h>
#include <math.h>
int main(void) {
float user_input;
int a;
char answ;
do {
printf ("Enter a number to find its lower bound, rounded, and upper bound values: ");
if ((a = scanf("%f", &user_input) == 1)) {
float floored_input = floor(user_input);
float rounded_input = round(user_input);
float ceiled_input = ceil(user_input);
printf("Lower Bound: %1.0f\n", floored_input);
printf("Rounded: %1.0f\n", rounded_input);
printf("Upper Bound: %1.0f\n", ceiled_input);
break;
} else {
printf("Invalid input. Do you want to try again? (Y/N): ");
scanf("%c", &answ);
}
} while(answ == 'Y' || answ == 'y');
return 0;
}
Единственная проблема, с которой я сталкиваюсь, это когдаПользователь вводит значение, буквально отличное от 'i', программа завершается, и я снова в рабочем каталоге.
Пользователь может ввести любое число, и оно будет работать.Пользователь может ввести i, и ему или ей будет предложено указать Y / N
ОДНАКО, когда пользователь вводит «i2», «привет», «h», «b», «yoooo»,etc
Пользователь не получает опцию Y / N, и программа завершается