• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Помогите с Калькулятором на С

  • Автор темы MariannaSec
  • Дата начала
M

MariannaSec

Здравствуйте, проблема следующая.
Необходимо написать калькулятор на С, операции банальные +,-,* и /
есть два числа типа float. Необходимо произвести проверку правильности ввода чисел
(не введен ли случайно буква или пр. символы)
пробовала работать с результатом функции scanf(), и если он равен 0, обрабатывать ошибку, но
если ввести за места числа, например, "2в", то число "2" программа проглотит, а букву "в" будет использовать
в качестве результата следующего ввода.

Вот пример кода для операции сложения.
[codebox] do
{
printf("Enter the 1st number of the SUM (for example 3.12):\n");
err = scanf("%f", &a);//reading the fisrt
if (err==0)
{
printf("\nYou are entering not a float number");
rewind(stdin);
}
}
while (err == 0);
do
{
printf("Enter the number you want to ADD (for example 3.12):\n");
err=scanf("%f",&:);//reading the second number
if (err==0)
{
printf("\nYou are entering not a float number");
rewind(stdin);
}
}
while (err == 0);
result = a + b;//making ADDITION
printf("\n The result of ADDITION operation is:\n %f", result); //output the result
[/codebox]

Также существует еще одна проблема:
если я ввожу числа 12.1212 и 12.1214 складываю, то получается странный результат типа 24.24259, хотя должен быть 24.2426

Пожалуйста, откликнитесь, буду очень признательна!!!!!
 
S

Seagull

введённое с клавы сливай в строку, посимвольно разбирай, должны быть 1234567890.- и если нет- проси ввести ещё раз... разбор- switch - ом

Например так... криво, но можно...
 
C

ChexoV

в цикле проверь каждый символ с помощью функции isalpha(); она определяет являеться ли символ буквой)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!