zach gonzales Ответов: 3

Пожалуйста, кто-нибудь помогите мне с этим кодом C++? я постоянно получаю 0 на общую


#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
	int number1 = 0;
	double total = 0.0;
	char currency = ' ';

	cout << "Enter amount of us dollars: ";
	cin >> number1;

	cout << "What currency would you like to convert it to?" << endl;
	
	cout << "Canada Dollar (CD)" << endl;
	cout << "Eurozone Euro (EE)" << endl;
	cout << "India Rupee (IR)" << endl;
	cout << "Japan Yen (JY)" << endl;
	cout << "Mexico Peso (MP)" << endl;
	cout << "South Africa Rand (SAR)" << endl;
	cout << "United Kingdom Pound (UKP)" << endl;
	
	cout << "Choose currency by the letter(s) in the parentheses: ";
	cin >> currency;

	if  (currency == 'CD')
		total = 1.01615 * number1;
	else if (toupper (currency == 'EE'))
		total = .638490 * number1;
	else if (toupper (currency == 'IR'))
		total = 40.1798 * number1;
	else if (toupper (currency == 'JY'))
		total = 104.390 * number1;
	else if (toupper (currency == 'MP'))
		total = 10.4613 * number1;
	else if (toupper (currency == 'SAR'))
		total = 7.60310 * number1;
	else if (toupper (currency == 'UKP'))	
		total = .504285 * number1;

	cout << "Currency converted: " << total << endl;
	

	system("pause");
	return 0;
}

Sergey Alexandrovich Kryukov

Вы жестко закодировали ставки, потому что думаете, что ставки никогда не меняются, или вы думаете, что для этого есть другая причина? :-)
--СА

3 Ответов

Рейтинг:
2

techone37

int number1 = 0;
двухместный общая = 0.0;

Изменение :

поплавок номер 1;
итого поплавка;

За экс: 10.23-флоат всего в 10.00, в 10 тоже плавают.

char currency = ' '; - это плохая декларация. Объявление char будет работать только для одного символа, а не для 2, 3, 5... символов. Измените декларации. Перепроектирование вашего кода будет работать, если вы используете 1 символ. пример : диск с, УО е ....

Я попробовал ваш код, и он не сработал. Оператор if не был выполнен. Я меняю if (currency=='C') и ставлю C , это действительно работает. Так :

char currency = ' '; работает только для одного символа.
Но строка символов, которую я еще не знал, как объявить строку символов.


Рейтинг:
2

killabyte

изменить тип номер1 в два раза, или бросания, когда вы умножаете


Рейтинг:
0

techone37

Я меняю ваш код здесь , и я компилирую с помощью кода::Blocks и тестирую :

<br />
#include <iostream><br />
#include <iomanip><br />
#include <cstring> // string.h header for the strcmp()<br />
#include <cstdio><br />
<br />
using namespace std;<br />
<br />
int main()<br />
{<br />
      float number1=0; // float here<br />
      float total=0; // float here<br />
     char currency[4]; // change into a array of strings<br />
<br />
     cout << "Enter amount of us dollars: ";<br />
     cin >> number1;<br />
<br />
     cout << "What currency would you like to convert it to?" << endl;<br />
<br />
     cout << "Canada Dollar (CD)" << endl;<br />
     cout << "Eurozone Euro (EE)" << endl;<br />
     cout << "India Rupee (IR)" << endl;<br />
     cout << "Japan Yen (JY)" << endl;<br />
     cout << "Mexico Peso (MP)" << endl;<br />
     cout << "South Africa Rand (SAR)" << endl;<br />
     cout << "United Kingdom Pound (UKP)" << endl;<br />
<br />
     cout << "Choose currency by the letter(s) in the parentheses: ";<br />
     cin >> currency;<br />
     // use str(currency,"currency_code_here")==0<br />
     if   (strcmp(currency,"CD")==0)<br />
          total = 1.01615 * number1;// like this one<br />
     else if (toupper (currency == 'EE'))<br />
          total = .638490 * number1;<br />
     else if (toupper (currency == 'IR'))<br />
          total = 40.1798 * number1;<br />
     else if (toupper (currency == 'JY'))<br />
          total = 104.390 * number1;<br />
     else if (toupper (currency == 'MP'))<br />
          total = 10.4613 * number1;<br />
     else if (toupper (currency == 'SAR'))<br />
          total = 7.60310 * number1;<br />
     else if (toupper (currency == 'UKP'))<br />
          total = .504285 * number1;<br />
     <br />
<br />
     cout << "Currency converted: " << total << endl;<br />
<br />
<br />
    // system("pause");<br />
     return 0;<br />
}<br />
<br />
<br />
</cstdio></cstring></iomanip></iostream>


Philippe Mori

Плохо отформатированный и поддельный код...