После сообщения "Некорректный ввод" программа должна снова предложить ввести формулу - C (СИ)

Узнай цену своей работы

Формулировка задачи:

здравствуйте, вот код:
//Примитивный калькулятор.
 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<locale.h>
#include<stdlib.h>
 
int main()
{
    double a,b,c;
    char x;
 
    setlocale(LC_CTYPE, ".866");
 
    wprintf(L"Введите формулу (например 12.5 + 32.56): ");
    scanf("%lg %c %lg", &a,&x,&b);
    if (x=='+')
    {
        c=a+b;
        wprintf(L"%lg %c %lg = %lg\n\n", a,x,b,c);
    }
    else if (x=='-')
    {
        c=a-b;
        wprintf(L"%lg %c %lg = %lg\n\n", a,x,b,c);
    }
    else if (x=='*')
    {
        c=a*b;
        wprintf(L"%lg %c %lg = %lg\n\n", a,x,b,c);
    }
    else if (x=='/')
    {
        c=a/b;
        wprintf(L"%lg %c %lg = %lg\n\n", a,x,b,c);
    }
    else
        wprintf(L"Некорректный ввод.\n\n");
}
я хочу сделать так, что после сообщения "Некорректный ввод" программа снова предложила ввести формулу. но как я ни старался с while, do while, for, ничего не выходит. видимо, что-то не понял в циклах. помогите, пожалуйста.

Решение задачи: «После сообщения "Некорректный ввод" программа должна снова предложить ввести формулу»

textual
Листинг программы
if( 3 != scanf("%lg %c %lg", &a,&x,&b) ){
  printf( "error!\n" );
  return -1;
}

Объяснение кода листинга программы

  1. Программа получает от пользователя ввод, используя функцию scanf.
  2. Ввод пользователя сохраняется в переменных a, x и b.
  3. Если пользователь ввел некорректную формулу (неправильное количество или тип данных), программа выводит сообщение об ошибке и завершает работу.
  4. Если пользователь ввел корректную формулу, программа продолжает работу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы