#c
#c
Вопрос:
Вот данные моего задания:
Вычислите денежную стоимость сберегательной облигации стоимостью 25 000 фунтов стерлингов в любое время в соответствии со следующим:
- Если облигации меньше 6 месяцев, проценты равны нулю.
- Если облигации от 6 до 12 месяцев, процентная ставка составляет 1 процент.
- Если облигации от 13 до 18 месяцев, процентная ставка составляет 2 процента.
- Если облигации от 19 до 24 месяцев, процентная ставка составляет 3,5 процента.
Вот мой код:
#include <iostream>
using namespace std;
int main()
{
int Savings_Bond = 25000;
int Age_Bond = 6 amp;amp; 12 amp;amp; 13 amp;amp; 18 amp;amp; 19 amp;amp; 24;
int Interest = 0.01 amp;amp; 0.02 amp;amp; 0.035;
int TotalV;
cout << "How long this bond been on? : ";
cin >> Age_Bond;
if (Age_Bond < 6)
{
TotalV = Savings_Bond * 0;
cout << "Your Interest Rate : "
<< "0%"
<< "n";
cout << "Total Value : " << TotalV << "n";
}
else if (Age_Bond = 6 12)
{
TotalV = Savings_Bond * 0.01;
cout << "Your Interest Rate : "
<< "1%"
<< "n";
cout << "Total Value : " << TotalV << "n";
}
else if (Age_Bond = 13 18)
{
TotalV = Savings_Bond * 0.02;
cout << "Your Interest Rate : "
<< "2%"
<< "n";
cout << "Total Value : " << TotalV << "n";
}
else if (Age_Bond = 19 24)
{
TotalV = Savings_Bond * 0.035;
cout << "Your Interest Rate : "
<< "3.5%"
<< "n";
cout << "Total Value : " << TotalV << "n";
}
return 0;
}
Вот как это выглядит:
How long this bond been on? : 17
Your Interest Rate : 1%
Total Value : 250
Комментарии:
1.
int Age_Bond = 6 amp;amp; 12 amp;amp; 13 amp;amp; 18 amp;amp; 19 amp;amp; 24;
будет инициализироватьсяAge_Bond
1
. Добавьте распечатки ваших переменных для отладки вашей программы — или запустите ее в реальном отладчике. Кроме того, вif (Age_Bond = 6 12)
вы присваиваете18
Age_Bond
.2. Можете ли вы объяснить, что делает эта строка?
int Interest = 0.01 amp;amp; 0.02 amp;amp; 0.035;
3. Также обратите внимание, что это
Age_Bond = 6 12
будет выполнять присваивание, а не сравнение (то есть==
)4. Это выглядит как код, который раньше был почти правильным, но становился все хуже и хуже в результате бесплодных попыток исправить исходную проблему.
Ответ №1:
Похоже, у вас есть некоторые недоразумения относительно того, как условные выражения работают в C .
Если облигации от 6 до 12 месяцев, процентная ставка составляет 1 процент
В C это написано так
else if (Age_Bond >= 6 amp;amp; Age_Bond <= 12)
У вас есть другие проблемы
int Age_Bond = 6 amp;amp; 12 amp;amp; 13 amp;amp; 18 amp;amp; 19 amp;amp; 24;
int Interest = 0.01 amp;amp; 0.02 amp;amp; 0.035;
Я не уверен, что, по вашему мнению, делают эти объявления, но в этом нет ничего полезного. Вы не используете Interest
переменную, поэтому вы можете просто удалить ее. И Age_Bond
переменная получает свое значение из пользовательского ввода, поэтому вам не нужно указывать здесь значение. Просто используйте
int Age_Bond;
Наконец, ваши вычисления значений неверны. Если процент равен 0%, то значение облигации равно 25000, но, согласно вашим расчетам, значение будет равно нулю. Если процент равен 1%, то значение равно 25250, но ваш расчет дает 250 и т.д. По сути, вам нужно добавить интерес к существующему значению.
Комментарии:
1. Большое вам спасибо, и да, мои расчеты совершенно неверны, спасибо за напоминание, что я исправляю это сейчас.