2016-11-20 2 views
2

Ich bin neu in C und schrieb ein Interesse Tabelle ein kleines Programm zu erzeugen. Das Programm stürzt jedoch ständig ab. Leider habe ich keine passenden Antworten gefunden, und ich habe keine Ideen, das Problem zu beheben. Wie repariere ich das Programm vor dem Absturz?Anfänger Programm stürzt immer wieder ab

#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

Dank, aber immer noch seltsame Werte –

+0

Danke Jungs, bekam alles wie geplant ♥ –

+1

Mark die Antwort fixiert, wie dann akzeptiert. –

Antwort

2

In Definition Ihres zinses() Funktion, sollten Sie die gleichen Arten wie in der Vorwärts Erklärung, schreiben so float zins(jahr, prozent) zu float zins(int jahr, int prozent) und es wird kompilieren ändern. Auch in der Hauptfunktion, sollten Sie scanf("%i", kapital);-scanf("%f", &kapital); ändern, weil Sie die scanf-Funktion mit einer Adresse zur Verfügung stellen müssen, um die Eingabe zu speichern, der Schwimmer ist, für die Sie% f verwenden. Außerdem ist es im Allgemeinen eine gute Idee, keine globalen Variablen zu verwenden.

+0

Vielen Dank für die schnelle Antwort, half den Absturz zu beheben. Aber jetzt die Werte in der Tabelle sind seltsam, wahrscheinlich Typ Problem? –

+0

Ich spreche kein Deutsch, also weiß ich nicht, welche Leistung Sie erwarten. Ich schlage vor zu versuchen, was @ user3121023 Ratschläge, anstatt float 'zinssatz = prozent/100;' versuchen 'float zinssatz = prozent/100.0;'. –