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

Тема в разделе "Общие вопросы по С и С++", создана пользователем MariannaSec, 22 май 2009.

  1. MariannaSec

    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

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

    Seagull Гость

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

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

    ChexoV Гость

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

Поделиться этой страницей