Проблема, с которой я столкнулся, заключается в том, что мой код застрянет либо в бесконечном цикле, либо будет иметь проблему переполнения стека и начнет производить отрицательные числа во время вычислений.C Программа застревает в бесконечном цикле
Я знаю, что эта проблема исходит из моего цикла while, и также думаю, что проблема, вероятно, связана с формулой, которую я использую, является линией i = (r/12)*(b - p + temp);
.
Однако я не уверен, как это исправить. Моя формула пытается рассчитать проценты, выплачиваемые по фиксированной процентной ставке за каждый месяц в течение 12 месяцев, и распечатать их на экране с остальным балансом. Это должно продолжаться до тех пор, пока баланс не достигнет 0
.
#include <stdio.h>
// main function
int main()
{
// variable declarations
float r = 0.22; // interest rate
float b = 5000.0; // amount borrowed
float p; // payment amount
int m = 1;
float temp, ti = 0;
float i;
// Take in data from user
printf("Please enter the amount you wish to pay monthly: \n");
scanf("%f", &p);
printf("\n");
//display interest rate, initial balance, monthly payment
printf("r = %.2f\nb = %.1f\np = %.1f \n\n", r, b, p);
// Month by month table showing month interest due/paid and remaining balance
i = (r/12) * b;
temp = i;
printf("%d %.2f %.2f\n", m,i,b);
m++;
while (i > 0) {
i = (r/12) * (b - p + temp);
b = (b - p + temp);
ti += temp;
temp = i;
printf("%d %.2f %.2f\n",m, i, b);
m++;
}
printf("\n");
printf("total interest paid: %.2f\n", ti);
return 0;
}
Просьба указать, что вы пытаетесь достичь с помощью формулы. – Haris
обновлено, чтобы включить эту информацию. –
Было бы хорошо, если бы вы объяснили, что такое переменная 'i'. –