2016-11-20 1 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("%f", &kapital);으로 변경해야합니다. 왜냐하면 % f를 사용하는 float 인 입력을 저장하기 위해 scanf 함수에 주소를 제공해야하기 때문입니다. 또한 일반적으로 전역 변수를 사용하지 않는 것이 좋습니다.

+0

빠른 답변을 보내 주셔서 감사합니다. 그러나 이제는 테이블의 값이 이상하고 적절하게 유형 문제가 있습니까? –

+0

저는 독일어를 말하지 않으므로 어떤 결과물을 기대하는지 모르겠습니다. 나는 float zinssatz = prozent/100; 대신에 @ user3121023 조언을 시도해 볼 것을 제안한다.'float zinssatz = prozent/100.0;'시도해 보라. –

관련 문제