2016-11-20 5 views
2

私はCの新人で、興味のテーブルを生成するための小さなプログラムを書いた。しかし、プログラムはクラッシュし続けます。残念ながら、私は本当に一致する答えを見つけることはなかったし、私はそれを修正するためのアイデアがありません。プログラムをクラッシュさせないように修正するにはどうすればよいですか?あなたのzins()関数の定義において初心者のプログラムはクラッシュし続ける

#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

ありがとうございますが、まだ変わった値 –

+0

ありがとうございました、計画どおりにすべてが固定されています♥ –

+1

回答をそのまま受け入れてください。 –

答えて

2

、あなたは前方宣言と同じタイプを書き、そのfloat zins(int jahr, int prozent)float zins(jahr, prozent)を変更し、それがコンパイルされなければなりません。また、あなたの主な機能では、アドレスをscanf関数に与える必要があるので、scanf("%i", kapital);scanf("%f", &kapital);に変更する必要があります。これは、%fを使用するfloat型の入力を格納するためです。また、一般にグローバル変数を使用しないことをお勧めします。

+0

クイックアンサーをいただきありがとうございました。しかし今、テーブルの値は、奇妙な、適切に型の問題ですか? –

+0

私はドイツ語を話さないので、あなたはどんなアウトプットを期待しているのか分かりません。私は、 'zinssatz = prozent/100;の代わりに@ user3121023のアドバイスを試してみることをお勧めします。' 'float zinssatz = prozent/100.0;'を試してみてください。 –