2015-01-30 2 views
0

Я хочу, чтобы система могла определять максимальное и минимальное значение из ввода и сохранять его в переменных, но я не совсем уверен, как это сделать.Определение максимального и минимального значений с входов

Это мой код:

#include<stdio.h> 
#include<stdlib.h> 
#include <math.h> 
int main(void) 
{ 
    float startnummer; 
    float hoppnummer; 
    float svarighetsgrad; 
    float domarpoang1; 
    float domarpoang2; 
    float domarpoang3; 
    float domarpoang4; 
    float domarpoang5; 
    float domarpoang6; 
    float domarpoang7; 
    float max; 
    float min; 

    printf("Startnummer: \n"); 
    scanf_s("%f", &startnummer); 

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

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

    printf("Domarpoang 1:\n"); 
    scanf_s("%f", &domarpoang1); 

    printf("Domarpoang 2:\n"); 
    scanf_s("%f", &domarpoang2); 

    printf("Domarpoang 3:\n"); 
    scanf_s("%f", &domarpoang3); 

    printf("Domarpoang 4:\n"); 
    scanf_s("%f", &domarpoang4); 

    printf("Domarpoang 5:\n"); 
    scanf_s("%f", &domarpoang5); 

    printf("Domarpoang 6:\n"); 
    scanf_s("%f", &domarpoang6); 

    printf("Domarpoang 7:\n"); 
    scanf_s("%f", &domarpoang7); 
    system("cls"); 
    printf("Startnummer: %.1f \n", startnummer); 
    printf("Hoppnummer: %.1f\n", hoppnummer); 
    printf("Svarighetsgrad: %.1f\n", svarighetsgrad); 
    printf("Domarpoang 1: %.1f\n", domarpoang1); 
    printf("Domarpoang 2: %.1f\n", domarpoang2); 
    printf("Domarpoang 3: %.1f\n", domarpoang3); 
    printf("Domarpoang 4: %.1f\n", domarpoang4); 
    printf("Domarpoang 5: %.1f\n", domarpoang5); 
    printf("Domarpoang 6: %.1f\n", domarpoang6); 
    printf("Domarpoang 7: %.1f\n", domarpoang7); 

    printf("Hoppoang: \n"); 

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

Так что я хочу сделать, это для системы, чтобы определить минимальные и максимальные значения domarpoang 1-7 и сохранить его в переменных макс и мин. Я не знаю, как это сделать, поскольку ввод сохраняется в разные переменные, поэтому как он может проверять каждую переменную для max и min.

Спасибо

+1

Массив 'float domarpoang [7];' будет лучше. Затем вы можете использовать цикл 'for' для поиска' min' и 'max'. Также позволяет помещать 'scanf_s' и' printf' в цикл. – user3386109

+0

Как бы выглядел цикл for? –

+0

'max = domarpoang [0]; для (i = 1; i <7; i ++), если (domarpoang [i]> max) max = domarpoang [i]; ' – user3386109

ответ

1

Если вы создаете массив поплавки и передать их в Scanf в цикле (я использую зсапЕ, потому что я нахожусь на Linux, но вы должны быть в состоянии применить этот принцип к scanf_s). Я добавил все ваши данные в структуру, чтобы ее упростить.

В цикле вы можете отслеживать минимальные и максимальные значения.

Извините, что имена переменных могут выглядеть странно, поскольку я не понимаю ваш язык.

#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 = FLT_MIN; 
    float min = FLT_MAX; 

    printf("Startnummer: \n"); 
    scanf("%f", &data.startnummer); 

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

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


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

      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]); 
    } 

    printf("min=%f max=%f\n", min, max); 

    printf("Hoppoang: \n"); 

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

Спасибо! –

+0

Добро пожаловать. Вы должны прочитать книгу новичков C, и все это станет проще понять. –

+0

Я сделаю это. Не могли бы вы просто помочь мне с еще одной просьбой. Я хотел бы добавить новую переменную с именем «TheResult», которая вычитает сумму всех «domarpoangs» с min и max «domarpoangs» (те, которые вы мне помогли определить), а затем вычисляет среднее значение с остальными domarpoangs (без макс и мин). Если бы вы могли это сделать, я был бы очень благодарен. –