2015-02-02 13 views
-1

Моя программа запрашивает у пользователя входные данные. Я хочу, чтобы он вышел, если первый вход равен нулю.Выход из программы, если пользователь вводит 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 ... если вы хотите завершить работу программы, напишите return 0; или какое-либо значение, которое вы хотите, чтобы ваш основной возвращался

+0

Большое спасибо! – John

2

Вы должны написать exit(0); (или exit(SOME_OTHER_INTEGER_STATUS)), а не exit;. Конечно, поскольку это в main, вы можете просто написать return 0;.

+0

Спасибо вам большое! – John

Смежные вопросы