初学者的程序不断崩溃

时间:2016-11-20 15:16:39

标签: c crash

我是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()

1 个答案:

答案 0 :(得分:2)

在zins()函数的定义中,您应该编写与前向声明中相同的类型,因此将float zins(jahr, prozent)更改为float zins(int jahr, int prozent)并进行编译。此外,在您的main函数中,您应该将scanf("%i", kapital);更改为scanf("%f", &kapital);,因为您需要为scanf函数提供地址,以存储您使用%f的输入,即浮点数。此外,通常不使用全局变量也是一个好主意。