Я написал программу, которая вычисляет сумму денег, которую вы должны заплатить. Пользователь вводит основную сумму, процентную ставку и период времени в годах, а затем программа дает им сумму, которую им придется заплатить в будущем. Когда я запускаю программу, конечный результат или сумма, которую мне нужно заплатить, слишком велика или неправильна. Вот код:C программа отображает неверный результат
#include <stdio.h>
int calculation_1(int principal, int rate, int years);
int main(void) {
int amount1, amount3;
double amount2, total;
printf("Investement Calculator \n");
printf("====================== \n");
printf("Principal : ");
scanf("%d", &amount1);
printf("Annual Rate: ");
scanf("%lf", &amount2);
printf("No of Years: ");
scanf("%d", &amount3);
total = calculation_1(amount1, amount2, amount3);
printf("The future value is: $%.2f \n", total);
return 0;
}
int calculation_1(int principal, int rate, int years) {
double subtotal,final;
subtotal = principal * (1 + rate) * years;
return subtotal;
}
я тестировал с этими значениями: 1000 для принципала, 0,06 для скорости и 5 лет для не лет. Конечный результат должен составлять $ 1338,23, но я получаю $ 5000,00. Вот формула, которую я использовал для расчета суммы:
total = principal * (1 + rate) ^number of years.
Я не могу понять, что я делаю неправильно.
Вы умножив на количество лет, не поднимая к власти лет. Используйте функцию pow(). – CodyF
Также 'rate' должен быть' double', а не 'int'. –
@alk: heh - хорошо пятнистый - оскорбительный «не» удален сейчас! –