[ C ] Minimum i maksimum

trojanxem

Użytkownik
Dołączył
Grudzień 6, 2011
Posty
239
#include<conio.h>
#include<cstdio>
#include<math.h>
int main()
{
int ile; // Z ilu liczb bedzie sie skladal ciag
int a,b,c; //Liczby ciagu
int min,max; // Minimum i maksimum
int MAX;
printf("Z ilu liczb ma sie skladac Twoj ciag?: \a\n");
scanf("%d", &ile);
for (int i = 1; i <= ile; i++)
{

printf("Podaj %d liczbe: \n\a", i);
scanf("%d", &b);
{ if ( b > b )
scanf("%d", &max);
else if ( b < b)
scanf("%d", &min);


}




}

printf("Roznica to %d", max);


getch();
return 0;
}
Chodzi mi o to, jak zrobic zeby program wypisał mi maksymalna i minmalną liczbę podaną w pętli for?
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
Kod:
#include <stdio.h>
#include <stdlib.h>

int main()
{   
    int i, liczba, min, max, ile;


    printf("Z ilu liczb ma sie skladac Twoj ciag?: \a\n");
    scanf("%d", &ile);


    for (i = 0; i < ile; i++)
    {   
        printf("Podaj %d liczbe: \n\a", i);
        scanf("%d", &liczba);


        min = (min > liczba || !i) ? liczba : min;
        max = (max < liczba || !i) ? liczba : max;
    }


    printf("min: %d, max: %d\n", min, max);


    getchar();
}
 

trojanxem

Użytkownik
Dołączył
Grudzień 6, 2011
Posty
239
dzieki :)
@Vandervir
dopiero się uczę i z kursu którego korzystam jest tak opisane
min = (min > liczba || !i) ? liczba : min;
hmm, ten zapis rozumiec jak min = min wieksza od liczba, lub nieprawda(?) ze, a dalej jak?
 
Ostatnia edycja:

nowy_me

Użytkownik
Dołączył
Luty 7, 2007
Posty
451
hmm, ten zapis rozumiec jak min = min wieksza od liczba, lub nieprawda(?) ze, a dalej jak?
w C jest automatyczna promocja int do bool, jak w int masz 0 to wyrażenie zwraca false, jak coś innego czyli np. 1, 2 lub -8 to zwraca true
|| !i służy do sprawdzenia czy to jest pierwsza iteracja, bo jeśli tak to pierwsza liczba jest początkowym max i min

można by to też tak zapisać:
Kod:
if (i == 0)
 {
     min = liczba;
     max = liczba;
}

min = (min > liczba) ? liczba : min;
max = (max < liczba) ? liczba : max;
W tym wypadku pewnie będzie o jeden skok więcej w wynikowym kodzie, ale jest czytelniej :D
Programiści C zazwyczaj stosują takie sztuczki :D, w C często pisze się sterowniki, systemy operacyjne, więc im szybszy kod tym lepszy, zazwyczaj kosztem czytelności.
 
Do góry Bottom