min i max w C++

Bogus
Użytkownik
Użytkownik
Posty: 20
Rejestracja: 12 gru 2007, o 16:13
Płeć: Mężczyzna
Lokalizacja: WAWA

min i max w C++

Post autor: Bogus »

program wyznaczający jednocześnie minimum i maximum dla danego ciągu liczb
natkoza
Użytkownik
Użytkownik
Posty: 2278
Rejestracja: 11 kwie 2007, o 18:49
Płeć: Kobieta
Lokalizacja: Dąbrowa Górnicza
Podziękował: 41 razy
Pomógł: 602 razy

min i max w C++

Post autor: natkoza »

Kod: Zaznacz cały

#include<iostream>
#include <ctime>
using namespace std;

int T[10000];
int n, e, maxx, minn,i;

int main()
{
	  cout<<"Podaj rozmiar tablicy (sposrod ilu liczb wybieramy max i min)"<<endl;
      cin >> n;
	  srand((unsigned)time(NULL));
      for(i = 1; i <= n; i++)
	  {
		  T[i]=rand()%(n+10);
	  cout<<T[i]<<" ";
	  }
	  cout<<endl;
      
      if(n == 1)
            maxx = minn = T[1];
      else
      {
            maxx = T[2];
            minn = T[1];
            for(i = 2; i <= n; i +=2 )
                if(T[i-1] > T[i]) swap(T[i], T[i-1]);      
            if(n%2) e = T[n]; 
            
            for(i = 3; i <= n; i += 2)
                if(T[i] < minn) minn = T[i];     
            for(i = 4; i <= n; i += 2)
                if(T[i] > maxx) maxx = T[i];       
      
            if(n%2)
            {
                if(e > maxx) maxx = e; 
                if(e < minn) minn = e;       
            }
      }
      cout << "MAX: " << maxx << endl;
      cout << "MIN: " << minn << endl;
      system("pause");
      return 0;
}
to jest program wyszukujacy max i min w tablicy wypełnianej losowo, ale zmiana nie powinna być pracochłonna
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

min i max w C++

Post autor: spajder »

swoją drogą sporo bardzie efektywne będzie zrobienie tego w jednej pętli:

Kod: Zaznacz cały

max = min = T[0];
for(int i = 1; i < n; i++)
{
    if(T[i] > max)
        max = T[i];
    if(T[j] < min)
        min = T[i];
}
wcześniej jest tylko wczytywanie danych
Nie trzeba tu robić żadnych założeń, że \(\displaystyle{ n>2}\) czy coś takiego - wystarczy, że ciąg jest niepusty
fala19
Użytkownik
Użytkownik
Posty: 41
Rejestracja: 27 sty 2008, o 10:56
Płeć: Mężczyzna
Lokalizacja: Miasto
Pomógł: 1 raz

min i max w C++

Post autor: fala19 »

można bez tablicy

Kod: Zaznacz cały

#include<iostream>
using namespace std;
int main()
{
int n;
float liczba, max, min;
cout<<"Z ilu liczb chcesz obliczyć MAX i MIN?"<<endl;
cin>> n;
max=min=liczba;
for( int i = 0; i < n; i++)
{
cout<<"Podaj liczbe: "<<endl;
cin>> liczba;
if( liczba>max)
{
max=liczba;
}
if( liczba < min)
{
min = liczba;
}
}
cout<<"MAX "<<max<<" i MIN "<<min<<endl;
char c;
cin>> c;
return 0;
}
ODPOWIEDZ