• XSS.stack #1 – первый литературный журнал от юзеров форума

Помогите решить задачу по с++

ERO7404

floppy-диск
Пользователь
Регистрация
21.01.2022
Сообщения
2
Реакции
0
Вот мой пример решения - вроде все правильно, но почему то когда в доллары перевожу в Visual Studio компилятор следом подтягивает значение else что Eror... Вобщем помогите кому не лень буду благодарен! Спасибо!



Написать программу, которая переводит введенную сумму гривен в указанную валюту (пользователь может ввести $, S, s или E, e – это тоже считается правильным). Если пользователь введет не правильные данные, то сразу выдается информация об ошибке и программа останавливается. Ниже приведен рекомендуемый вид экрана во время работы программы. Введите количество гривен -> 1000 Введите валюту перевода($ или Е): S Результат: _______

C++:
#include <iostream>

using namespace std;

int main()   // Exercise 1
{
const double USD = 26.5, EURO = 30;
    double GRN;
    char valuta = ' ';
    double sum_USD;
    double sum_EURO;

    cout << "Enter the number of grivna ->  ";
    cin >> GRN;
    cout << "Entrer your currency of the transfer ($, S, s or E, e) ->  ";
    cin >> valuta;
    if (valuta == '$' || valuta == 'S' || valuta == 's')
        {
        sum_USD = GRN / USD;
        cout << "Your result: " << sum_USD;
        }
    if (valuta == 'E' || valuta == 'e')
        {
            sum_EURO = GRN / EURO;
            cout << "Your result:  " << sum_EURO;
        }
    else
    {
        cout << "Eror! You entered incorrect data!";
    }

    return 0;
}
 
Последнее редактирование модератором:
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот мой пример решения - вроде все правильно, но почему то когда в доллары перевожу в Visual Studio компилятор следом подтягивает значение else что Eror... Вобщем помогите кому не лень буду благодарен! Спасибо!



Написать программу, которая переводит введенную сумму гривен в указанную валюту (пользователь может ввести $, S, s или E, e – это тоже считается правильным). Если пользователь введет не правильные данные, то сразу выдается информация об ошибке и программа останавливается. Ниже приведен рекомендуемый вид экрана во время работы программы. Введите количество гривен -> 1000 Введите валюту перевода($ или Е): S Результат: _______

#include <iostream>

using namespace std;

int main() // Exercise 1
{
const double USD = 26.5, EURO = 30;
double GRN;
char valuta = ' ';
double sum_USD;
double sum_EURO;

cout << "Enter the number of grivna -> ";
cin >> GRN;
cout << "Entrer your currency of the transfer ($, S, s or E, e) -> ";
cin >> valuta;
if (valuta == '$' || valuta == 'S' || valuta == 's')
{
sum_USD = GRN / USD;
cout << "Your result: " << sum_USD;
}
if (valuta == 'E' || valuta == 'e')
{
sum_EURO = GRN / EURO;
cout << "Your result: " << sum_EURO;
}
else
{
cout << "Eror! You entered incorrect data!";
}

return 0;
}
Посмотрите внимательнее на ваш код.
Вот такой алгоритм идет у вас:
1) Ввод данных
2) Если valuta == '$' || valuta == 'S' || valuta == 's' , то выполнить что-то
3) Независимо оттого, выполнилось условие из 2 пункта делается еще одна проверка Если valuta == 'E' || valuta == 'e'. Если эта проверка обвалилась, то вызывается код из блока else.

Вы ввели доллар, он прошел первый if. Он не прошел проверку на евро, значит вывести ошибку. Вроде очевидная проблема.
Быстро-фикс:

C++:
#include <iostream>

using namespace std;

int main() // Exercise 1
{
    const double USD = 26.5, EURO = 30;
    char valuta = ' ';
    double sum_USD = 0, sum_EURO = 0, GRN = 0;

    cout << "Enter the number of grivna -> ";
    cin >> GRN;
    cout << "Entrer your currency of the transfer ($, S, s or E, e) -> ";
    cin >> valuta;
    if (valuta == '$' || valuta == 'S' || valuta == 's') {
        sum_USD = GRN / USD;
        cout << "Your result: " << sum_USD << endl;
    }
    else if (valuta == 'E' || valuta == 'e') {
        sum_EURO = GRN / EURO;
        cout << "Your result: " << sum_EURO << endl;
    }
    else {
        cout << "Error! You entered incorrect data!" << endl;
    }

    return 0;
}

P.S научитесь пользоваться вставками кода на форуме. Кнопочка над полем для написания сообщения
 
Посмотрите внимательнее на ваш код.
Вот такой алгоритм идет у вас:
1) Ввод данных
2) Если valuta == '$' || valuta == 'S' || valuta == 's' , то выполнить что-то
3) Независимо оттого, выполнилось условие из 2 пункта делается еще одна проверка Если valuta == 'E' || valuta == 'e'. Если эта проверка обвалилась, то вызывается код из блока else.

Вы ввели доллар, он прошел первый if. Он не прошел проверку на евро, значит вывести ошибку. Вроде очевидная проблема.
Быстро-фикс:

C++:
#include <iostream>

using namespace std;

int main() // Exercise 1
{
    const double USD = 26.5, EURO = 30;
    char valuta = ' ';
    double sum_USD = 0, sum_EURO = 0, GRN = 0;

    cout << "Enter the number of grivna -> ";
    cin >> GRN;
    cout << "Entrer your currency of the transfer ($, S, s or E, e) -> ";
    cin >> valuta;
    if (valuta == '$' || valuta == 'S' || valuta == 's') {
        sum_USD = GRN / USD;
        cout << "Your result: " << sum_USD << endl;
    }
    else if (valuta == 'E' || valuta == 'e') {
        sum_EURO = GRN / EURO;
        cout << "Your result: " << sum_EURO << endl;
    }
    else {
        cout << "Error! You entered incorrect data!" << endl;
    }

    return 0;
}

P.S научитесь пользоваться вставками кода на форуме. Кнопочка над полем для написания сообщения
Блин как я это не понимал)) Спасибо!
p.s.: вкладками пользоваться научусь! Спасибо что подсказали!
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх