Ustalenie pozycji max w tablicy.
Ostatnio zmodyfikowano 2015-03-21 12:03
Malacht Temat założony przez niniejszego użytkownika |
Ustalenie pozycji max w tablicy. » 2015-03-21 08:13:45 Program poza znalezieniem min, max musi mi wyświetlić na której pozycji znajduję się max. Jednak nie mam pomysłu na warunek. Co zmienić? #include "stdafx.h" #include<iostream> using namespace std; int _tmain( int argc, _TCHAR * argv[] ) { const int nmax = 20; float a[ nmax ]; int n, i, nrmin; float min, max, pozycja; cout << "program min i max w wektorze. Podaj rozmiar wektora a" << endl; cin >> n; if( n > 0 && n <= nmax ) { for( i = 0; i < n; i++ ) { cout << "podaj a[" << i + 1 << "]="; cin >> a[ i ]; } cout << "wektor a ma postac:" << endl; for( i = 0; i < n; i++ ) cout << a[ i ] << " "; cout << endl; min = a[ 0 ]; max = a[ 0 ]; for( i = 1; i < n; i++ ) if( a[ i ] < min ) min = a[ i ]; cout << "minimum=" << min << endl; for( i = 1; i < n; i++ ) if( a[ i ] > max ) max = a[ i ]; cout << "max=" << max << endl; if( a[ i ] = max ) pozycja = i; cout << "pozycja=" << pozycja << endl; } return 0; }
|
|
akwes |
» 2015-03-21 08:39:27 Zapamiętać jego pozycję? Dokładnie tak samo jak odnajdujesz min i max. Powątpiewam w takim razie, czy jesteś autorem kodu :) |
|
Malacht Temat założony przez niniejszego użytkownika |
» 2015-03-21 08:50:42 A jakieś konkrety, bo zawsze jak myśle że jest ok to wyświetla mi 1.000000+e. Powiedz chociaż czy to co jest pod komentarzem //pozycja max to dobry trop, czy kompletnie zepsułem ? |
|
akwes |
» 2015-03-21 09:24:56 A najwyższej liczby nie masz właśnie na pierwszym miejscu w tablicy? Wyświetlenie zapisu wynika z tego, że pozycję trzymasz w zmiennej typu float. Oczywiście, pozycja obiektu w tablicy może być tylko całkowita więc lepiej byłoby trzymać pozycję w typie całkowitym (unsigned int). Od razu wtedy wyświetli się poprawnie. Pamiętaj, że tablice numeruje się od zera, także wypisanie się wartości "1" oznacza "w drugim okienku tablicy". // edit if( a[ i ] = max ) pozycja = i;
Przypisujesz MAX do a ? Jesteś pewien, że to chciałeś zrobić?// edit2 ciągle używasz tej samej zmiennej i. Więc domyślasz się jaką ma tam wartość? Pomyśl jakie informacje warto by zapamiętać podczas wyszukiwania maksymalnego elementu |
|
Malacht Temat założony przez niniejszego użytkownika |
» 2015-03-21 12:03:42 Tak dla ciekawskich to takie rozwiązanie mi wyszło :) #include "stdafx.h" #include<iostream> using namespace std; int _tmain( int argc, _TCHAR * argv[] ) { const int nmax = 20; float a[ nmax ]; int n, i, nrmin, pozycja; float min, max; cout << "program max w wektorze. Podaj rozmiar wektora a" << endl; cin >> n; if( n > 0 && n <= nmax ) { for( i = 0; i < n; i++ ) { cout << "podaj a[" << i + 1 << "]="; cin >> a[ i ]; } max = a[ 0 ]; pozycja = 0; for( i = 1; i < n; i++ ) if( a[ i ] > max ) { max = a[ i ]; pozycja = i + 1; } cout << "max=" << max << endl; cout << "pozycja = " << pozycja << endl; } return 0; }
|
|
« 1 » |