Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Ustalenie pozycji max w tablicy.

Ostatnio zmodyfikowano 2015-03-21 12:03
Autor Wiadomość
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ć?
C/C++
#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 )
    { //wprowadzam wektror
        for( i = 0; i < n; i++ )
        {
            cout << "podaj a[" << i + 1 << "]=";
            cin >> a[ i ];
        }
        //wypis wektora
        cout << "wektor a ma postac:" << endl;
        for( i = 0; i < n; i++ )
             cout << a[ i ] << " ";
       
        cout << endl;
        //szukanie minimu
        min = a[ 0 ];
        max = a[ 0 ];
        for( i = 1; i < n; i++ )
        if( a[ i ] < min )
             min = a[ i ];
       
        cout << "minimum=" << min << endl;
        // szukanie max
        for( i = 1; i < n; i++ )
        if( a[ i ] > max )
             max = a[ i ];
       
        cout << "max=" << max << endl;
        // pozycja max
       
        if( a[ i ] = max )
             pozycja = i;
       
        cout << "pozycja=" << pozycja << endl;
       
    }
    return 0;
}
P-128851
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 :)
P-128854
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 ?
P-128856
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
C/C++
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
P-128857
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 :)

C/C++
#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 )
    { //wprowadzam wektror
        for( i = 0; i < n; i++ )
        {
            cout << "podaj a[" << i + 1 << "]=";
            cin >> a[ i ];
        }
       
        max = a[ 0 ];
        pozycja = 0;
       
        // szukanie max
        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;
}
P-128868
« 1 »
  Strona 1 z 1