2015-02-02 2 views
-1

내 프로그램에서 사용자에게 입력을 요청합니다. 첫 번째 입력이 0이면 종료해야합니다.사용자 입력이 0 인 경우 프로그램 종료

#include<stdio.h> 
#include<stdlib.h> 
#include <math.h> 
#include <float.h> 

struct mystruct 
{ 
    float startnummer; 
    float hoppnummer; 
    float svarighetsgrad; 
    float domarpoangs[7]; 
}; 

int main(void) 
{ 
    struct mystruct data; 
    float max = 0; 
    float min = FLT_MAX; 
    float sum = 0; 
    float avg = 0; 
    int i = 0; 
    float resultat = 0; 

    printf("Startnummer: \n"); 
    scanf_s("%f", &data.startnummer); //<<---If this i 0 - exit the program 
    if (data.startnummer == 0) 
    { 
     exit; 
    } 

    printf("Hoppnummer:\n"); 
    scanf_s("%f", &data.hoppnummer); 

    printf("Svarighetsgrad:\n"); 
    scanf_s("%f", &data.svarighetsgrad); 


    for (i = 0; i < 7; i++) 
    { 
     printf("domarpoang %d\n", i + 1); 
     float f; 
     if (scanf_s("%f", &f) == 1) 
     { 
      if (f < min) min = f; 
      if (f > max) max = f; 

      data.domarpoangs[i] = f; 
     } 
     else 
     { 
      printf("error parsing float\n"); 
      exit(0); 
     } 

    } 

    system("cls"); 
    printf("Startnummer: %.1f \n", data.startnummer); 
    printf("Hoppnummer: %.1f\n", data.hoppnummer); 
    printf("Svarighetsgrad: %.1f\n", data.svarighetsgrad); 
    for (i = 0; i < 7; i++) 
    { 
     printf("Domarpoang %d: %.1f\n", (i + 1), data.domarpoangs[i]); 
    } 

    for (i = 0; i < 7; i++) 
    { 
     sum += data.domarpoangs[i]; 

    } 
    sum = sum - (max + min); 

    avg = sum/5; 

    resultat = avg * 3 * data.svarighetsgrad; 

    printf("Hoppoang:%.2f \n", resultat); 


    printf("Tryck tangent for nytt hopp!"); 
    getchar(); 
    getchar(); 
    return 0; 
} 

문제는 그것이 작동하지 않는다는 것입니다 :

여기 내 코드입니다. 나는 오류가 발생하지 않지만 프로그램은 사용자의 입력이 0 일 때 닫히지 않고 정상적으로 실행됩니다.

+1

복제본 : http://stackoverflow.com/q/28285063/440558 –

+3

컴파일러 경고 메시지가 나타납니다. – Quentin

답변

1

ehmmm ... 프로그램을 종료하려면 write return 0; 또는 무엇이든지 귀사가 반환 할 값

+0

대단히 감사합니다! – John

2

exit;이 아니라 exit(0); (또는 exit(SOME_OTHER_INTEGER_STATUS))을 입력해야합니다. 물론 이것은 main에 있기 때문에 대신 return 0;을 쓸 수 있습니다.

+0

대단히 감사합니다! – John

관련 문제