我是 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()
最佳答案
在 zins() 函数的定义中,您应该编写与前向声明中相同的类型,因此更改 float zins(jahr, prozent)
至float zins(int jahr, int prozent)
它会编译。另外,在您的主要功能中,您应该更改 scanf("%i", kapital);
至scanf("%f", &kapital);
,因为您需要为 scanf 函数提供一个地址来存储输入,该输入是 float ,您可以使用 %f。另外,通常最好不要使用全局变量。
关于c - 初学者的程序总是崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40705690/