我的C代码遇到了一些麻烦。这是执行my代码后遇到的错误的详细信息。错误随着线而上升
Odeme_Plani[i].Taksit_Tutari = Odeme_Plani[i-1].Taksit_Tutari;
为什么会出现此错误以及如何处理此问题,请帮助我。谢谢你的帮助。最好的问候。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
typedef struct {
int MusteriNo;
char Ad[100];
char Soyad[100];
int Kredi_Tutari;
int Taksit_Sayisi;
float Aylik_Akdi_Faiz_Orani;
int KKDF;
int BSMV;
}Customer;
typedef struct{
int no;
int Taksit_Tarihi_gun;
int Taksit_Tarihi_ay;
int Taksit_Tarihi_yil;
float Taksit_Tutari;
float Taksit_İcerisindeki_Anapara;
float Faiz;
float Fon_Vergi;
float Kalan_Anapara;
}Customer1;
float taksit_tutari(int Kredi_Tutari, float faiz, int Taksit_sayisi, int KKDF, int BSMV);
float faiz_hesabi(int Kredi_Tutari, float faiz, double kalan_anapara);
int main() {
// First we must define global variables like faiz oranı, kredi tutarı vb.
Customer Musteri1;
int i = 0;
int current_time_gun = 27;
int current_time_ay = 12;
int current_time_yil = 2018;
printf("Lütfen Musteri Numarasini giriniz\n");
scanf("%d",&Musteri1.MusteriNo);
printf("Lütfen Musteri Adini giriniz\n");
scanf("%s",Musteri1.Ad);
printf("Lütfen Musteri Soyadini giriniz\n");
scanf("%s",Musteri1.Soyad);
printf("Lütfen Musterinin istediği Kredi Tutarini giriniz\n");
scanf("%d",&Musteri1.Kredi_Tutari);
printf("Lütfen Krediyi kaç ay vade ile almak istediginizi giriniz\n");
scanf("%d",&Musteri1.Taksit_Sayisi);
printf("Lütfen Kredinin Aylik Akdi Faiz Oranini giriniz\n");
scanf("%f.2",&Musteri1.Aylik_Akdi_Faiz_Orani);
printf("Lütfen KKDF Yuzdesini giriniz\n");
scanf("%d",&Musteri1.KKDF);
printf("Lütfen BSMV Yuzdesini giriniz\n");
scanf("%d",&Musteri1.BSMV);
Customer1 Odeme_Plani[Musteri1.Taksit_Sayisi];
for (i=0;(Musteri1.Taksit_Sayisi-1);i++){
if(i==0){
Odeme_Plani[i].Taksit_Tutari = taksit_tutari(Musteri1.Kredi_Tutari,Musteri1.Aylik_Akdi_Faiz_Orani,Musteri1.Taksit_Sayisi,Musteri1.KKDF,Musteri1.BSMV);
}
else{
Odeme_Plani[i].Taksit_Tutari = Odeme_Plani[i-1].Taksit_Tutari;
}
}
for (i=0;((Musteri1.Taksit_Sayisi)-1);i++){
Odeme_Plani[i].no = i+1;
Odeme_Plani[i].Taksit_Tarihi_gun = current_time_gun;
Odeme_Plani[i].Taksit_Tarihi_ay = current_time_ay + i;
Odeme_Plani[i].Taksit_Tarihi_yil = current_time_yil;
}
for(i=0;((Musteri1.Taksit_Sayisi)-1);i++){
if(i==0){
Odeme_Plani[i].Kalan_Anapara = Musteri1.Kredi_Tutari;
Odeme_Plani[i].Faiz = faiz_hesabi(Musteri1.Kredi_Tutari, Musteri1.Aylik_Akdi_Faiz_Orani, Odeme_Plani[i].Kalan_Anapara);
Odeme_Plani[i].Fon_Vergi = Odeme_Plani[i].Faiz * 0.2;
Odeme_Plani[i].Taksit_İcerisindeki_Anapara = Odeme_Plani[i].Taksit_Tutari - Odeme_Plani[i].Faiz - Odeme_Plani[i].Fon_Vergi;
Odeme_Plani[i].Kalan_Anapara = Musteri1.Kredi_Tutari - Odeme_Plani[i].Taksit_İcerisindeki_Anapara;
}
else
Odeme_Plani[i].Faiz = faiz_hesabi(Musteri1.Kredi_Tutari, Musteri1.Aylik_Akdi_Faiz_Orani, Odeme_Plani[i-1].Kalan_Anapara);
Odeme_Plani[i].Fon_Vergi = Odeme_Plani[i].Faiz * 0.2;
Odeme_Plani[i].Taksit_İcerisindeki_Anapara = Odeme_Plani[i].Taksit_Tutari - Odeme_Plani[i].Faiz - Odeme_Plani[i].Fon_Vergi;
Odeme_Plani[i].Kalan_Anapara = Odeme_Plani[i-1].Kalan_Anapara - Odeme_Plani[i].Taksit_İcerisindeki_Anapara;
}
for (i=0;((Musteri1.Taksit_Sayisi)-1);i++){
printf("\nNo %d\n",Odeme_Plani[i].no);
printf("Taksit Tarihi %d // %d // %d\n" ,Odeme_Plani[i].Taksit_Tarihi_gun,Odeme_Plani[i].Taksit_Tarihi_ay,Odeme_Plani[i].Taksit_Tarihi_yil);
printf("Taksit Tutari %f\n",Odeme_Plani[i].Taksit_Tutari);
printf("Taksit icindeki ana para %.2f\n",Odeme_Plani[i].Taksit_İcerisindeki_Anapara);
printf("Faiz %.2f\n",Odeme_Plani[i].Faiz);
printf("Fon + Vergi %.2f\n",Odeme_Plani[i].Fon_Vergi);
printf("Kalan Anapara %.2f\n\n",Odeme_Plani[i].Kalan_Anapara);
}
return 0;
}
float taksit_tutari(int Kredi_Tutari, float faiz, int Taksit_sayisi, int KKDF, int BSMV){
float taksit_miktari;
taksit_miktari = (Kredi_Tutari) * (((faiz/100) * pow((1+(faiz/100)),Taksit_sayisi)) / (pow((1+(faiz/100)),Taksit_sayisi)-1));
return taksit_miktari;
}
float faiz_hesabi(int Kredi_Tutari, float faiz, double kalan_anapara){
float faiz_miktari;
if(Kredi_Tutari == kalan_anapara)
faiz_miktari = (Kredi_Tutari * faiz)/100;
else
faiz_miktari = (kalan_anapara * faiz)/100;;
return faiz_miktari;
}