Skocz do zawartości

[C++] Program do wyznaczania najmniejszej i największej wartości.


vott

Polecane posty

Witam,

Miałem w szkole do napisania program w programie Dev o temacie: Napisz i uruchom program do zapisywania w tablicy podanych przez użytkownika n liczb i wyznaczania rozpiętości (różnicy największej i najmniejszej wartości). Napisałem to tak:

#include<iostream>

using namespace std;

int main()
{
int n,min,max;
int *tab;
cout << "Podaj ile liczb" << endl;
cin >> n;
tab = new int [n] ;

for(int i = 0;i<n;i++)
{
cout << "Wpisz element " << i+1 << ": ";
cin >> tab[i];
}

min = max = tab[0];
for(int i = 0;i<n;i++)
{
if(min > tab[i])
min = tab[i];
else if(max < tab[i])
max = tab[i];
}

cout << "Najmniejsza wartosc " << min << endl;
cout << "Najwieksza wartosc " << max << endl;

system("pause");
return 0;
}

Podobno można to napisać w kilku linijkach na prostszy sposób, czy ktoś ma pomysł jak to uprościć ?

Link do komentarza
Udostępnij na innych stronach

Jeśli skorzystasz z funkcji biblioteki standardowej, to trochę kodu Ci odpadnie:

 

http://www.cplusplus...hm/max_element/

http://www.cplusplus...hm/min_element/

 

Skoro masz wyznaczyć rozpiętość, to nie ma sensu wypisywanie min i max, wypisz od razu max minus min ;)

 

Zamiast rozdzielać deklarację tablicy na dwie części można od razu wpisać:

int *tab = new int [n] ;

 

Jeśli chodzi o Dev C++, to używaj go sobie pod warunkiem, że to będzie któryś z nowych Dev'ów (Orwell albo wxDev), Bloodshed nie rozwija swojego Dev'a od wielu lat...

 

Takie coś namodziłem:

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
   int n;
   cout << "Podaj ile liczb" << endl;
   cin >> n;
   int *tab = new int [n] ;
   for(int i = 0;i<n;i++)
   {
       cout << "Wpisz element " << i+1 << ": ";
       cin >> tab[i];
   }
   cout << "Rozpietosc zbioru: " << *max_element(tab,tab+n) - *min_element(tab,tab+n) << endl;
   system("pause");
   return 0;
}

 

Na przyszłość dawaj kod w odpowiednich tagach!!!

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...