[C] Największa i najmniejsza wartość w tablicy

Mala__Mi
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 14 mar 2012, o 00:33
Płeć: Kobieta
Lokalizacja: T.
Podziękował: 2 razy

[C] Największa i najmniejsza wartość w tablicy

Post autor: Mala__Mi »

Muszę wyświetlić największą i najmniejszą wartość z tabeli liczb pseudolosowych. Poprzez napisanie takiego programu w języku c. Postarałam się wykonać, niestety po "włączeniu programu" pokazuje mi się coś takiego :

Kod: Zaznacz cały

6 6 3 5 2 4 7 8 3 4 
max = 1332267953
min = 2686728
RUN SUCCESSFUL (total time: 52ms)
nie są to niestety największe i najmniejsze wartości z tej tablicy ;/ Gdzie popełniłam błąd? POMOCY!

Oto wpisywany kod.

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


/*
 * 
 */
int main(int argc, char** argv) {
    
   int i;
   time_t t;
   int max,min,tab[10];
   
   
        
                             
   t=time(&t);
   srand(t);
   max=tab[0];
   min=tab[0];
   
   for(i=0;i<10;i++)
       tab[i]=rand()%10;
       
   for(i=0;i<10;i++)
       printf("%d ",tab[i]);
       printf("
");
   {
      
if(tab[10]>max)max=tab[10];

        printf("max = %d",max);
        printf("
");

if(tab[10]<min)min=tab[10];
        printf("min = %d",min);
}

    return (EXIT_SUCCESS);
}


Z góry dziękuję! : )
Ostatnio zmieniony 20 mar 2012, o 22:02 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
gryxon
Użytkownik
Użytkownik
Posty: 311
Rejestracja: 30 gru 2011, o 02:21
Płeć: Mężczyzna
Lokalizacja: Puławy
Podziękował: 11 razy
Pomógł: 53 razy

[C] Największa i najmniejsza wartość w tablicy

Post autor: gryxon »

Po pierwsze- Jeżeli deklarujesz tablice jako:

Kod: Zaznacz cały

int tab[10] 
to nie ma takiego elementu jak :

Kod: Zaznacz cały

tab[10]
są tylko: tab[0]...tab[9].
Po drugie- Dlaczego niby twój kod miałby działać?
Tak na szybko:

Kod: Zaznacz cały

int min=tab[0],max=tab[0];
for(int i = 1; i<10; ++i){
   if(tab[i]<min)min=tab[i];
   if(tab[i]>max)max=tab[i];
}
Szczech
Użytkownik
Użytkownik
Posty: 123
Rejestracja: 30 lis 2006, o 14:20
Płeć: Mężczyzna
Lokalizacja: Znienacka
Podziękował: 12 razy
Pomógł: 21 razy

[C] Największa i najmniejsza wartość w tablicy

Post autor: Szczech »

A tak przede wszystkim to dlaczego nadajesz zmiennym min i max wartości niezainicjowanej tablicy!?
Przecież w tab[0] jeszcze nic nie masz. Tzn masz ale śmieci, które później porównujesz co nie ma najmniejszego sensu..
Mala__Mi
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 14 mar 2012, o 00:33
Płeć: Kobieta
Lokalizacja: T.
Podziękował: 2 razy

[C] Największa i najmniejsza wartość w tablicy

Post autor: Mala__Mi »

Zmieniłam i powstało coś takiego

Kod: Zaznacz cały

 int i;
   time_t t;
   int tab[10];
   int min=tab[0],max=tab[0];
   
   
       
                             
   t=time(&t);
   srand(t);
   
   
   for(i=0;i<10;i++)
       tab[i]=rand()%10;
       
   for(i=0;i<10;i++)
       printf("%d ",tab[i]);
       printf("
");
   {
     
if(tab[i]>max)max=tab[i];

        printf("max = %d",max);
        printf("
");

if(tab[i]<min)min=tab[i];
        printf("min = %d",min);
}


Tyle, że program znów wyświetla jakieś dziwne sumy zamiast największą oraz najmniejszą, a funkcji printf muszę użyć ponieważ chcę aby pokazały mi się wyraźnie pod losowanymi liczbami wartość maksymalna i minimalna.

Ps. Jestem raczej "ciemna" z tego programowania. -- 20 mar 2012, o 20:40 --
Szczech pisze:A tak przede wszystkim to dlaczego nadajesz zmiennym min i max wartości niezainicjowanej tablicy!?
Przecież w tab[0] jeszcze nic nie masz. Tzn masz ale śmieci, które później porównujesz co nie ma najmniejszego sensu..
czyli jak mogę to zmienić? zamieć to tab[0] na już nadaną tablicę tab[10]?
Szczech
Użytkownik
Użytkownik
Posty: 123
Rejestracja: 30 lis 2006, o 14:20
Płeć: Mężczyzna
Lokalizacja: Znienacka
Podziękował: 12 razy
Pomógł: 21 razy

[C] Największa i najmniejsza wartość w tablicy

Post autor: Szczech »

W komentarzach masz wyjaśnienia

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char** argv) {
   
   int i;
   time_t t;
   int max,min,tab[10]; 
          
                             
   t=time(&t);
   srand(t);
   
   for(i=0;i<10;i++)
       tab[i]=rand()%10;
    //dopiero teraz mozemy nadac wartosc z tablicy bo już ją mamy
	max=tab[0];
   	min=tab[0];
       
   for(i=0;i<10;i++){

       printf("%d ",tab[i]);
       printf("
");
       if(tab[i]>max) max=tab[i]; //tutaj sprawdzamy od razu całą tablicę w pętli
	   if(tab[i]<min) min=tab[i];
	}
  		//wypisujemy wartosci
        printf("max = %d",max);
        printf("
");

        printf("min = %d",min);
        printf("
");

	system("pause");
    return (EXIT_SUCCESS);
}
Mala__Mi
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 14 mar 2012, o 00:33
Płeć: Kobieta
Lokalizacja: T.
Podziękował: 2 razy

[C] Największa i najmniejsza wartość w tablicy

Post autor: Mala__Mi »

Dziękuję Ci z całego serduszka : ) !
Teraz już rozumiem : )
Jeszcze raz wielkie dzięki!
ODPOWIEDZ