我是C的新手并编写了一个用于生成兴趣表的小程序。但是,该程序不断崩溃。不幸的是,我没有找到任何匹配的答案,我没有修复它的想法。如何修复程序崩溃?
#include <stdio.h>
#include <stdlib.h>
float kapital;
float zins(int jahr, int prozent);
void tabelle()
{
printf("\n |1% 2% 3% 4% 5% 6% 7% 8% 9% 10%");
printf("\n----+---------------------------------------------------------\n");
int jahr,prozent;
for(jahr=1; jahr<=10; jahr++)
{
printf("%3d |", jahr);
for(prozent=1; prozent<=10; prozent++)
{
printf("%5d", zins(jahr, prozent));
}
printf("\n");
}
}//tabelle()
float zins(jahr,prozent)
{
float zinssatz = prozent/100;
int i;
float kapitalneu;
float zwischenkapital=kapital;
for(i=1;i<=jahr;i++)
{
kapitalneu = kapital*zinssatz;
zwischenkapital = zwischenkapital + kapitalneu + 0.005; //+0.005 um zu runden, um die Tabelle im Rahmen zu halten
}
return zwischenkapital;
}//zins(p,j)
int main()
{
printf("Kapital :");
scanf("%i", kapital);
tabelle();
}//main()
答案 0 :(得分:2)
在zins()函数的定义中,您应该编写与前向声明中相同的类型,因此将float zins(jahr, prozent)
更改为float zins(int jahr, int prozent)
并进行编译。此外,在您的main函数中,您应该将scanf("%i", kapital);
更改为scanf("%f", &kapital);
,因为您需要为scanf函数提供地址,以存储您使用%f的输入,即浮点数。此外,通常不使用全局变量也是一个好主意。