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

[C++] Wyznaczenie średniej, największego oraz najmniejszego elementu dla N liczb wprowadzonych z klawiatury.

Ostatnio zmodyfikowano 2014-10-20 21:56
Autor Wiadomość
kasiula03
Temat założony przez niniejszego użytkownika
[C++] Wyznaczenie średniej, największego oraz najmniejszego elementu dla N liczb wprowadzonych z klawiatury.
» 2014-10-20 19:00:09
Witam, mam takie o to zadanie:
Wyznaczenie średniej, największego oraz najmniejszego elementu dla N liczb wprowadzonych z klawiatury.
Wiem jak wyznaczyć minimalną wartość, ale nie umiem jednocześnie wyznaczyć też wartości maksymalnej, kombinowałam na różne sposoby, na razie stanęło na:
C/C++
#include <iostream>

using namespace std;

int main()
{ //Wyznaczenie średniej, największego oraz najmniejszego elementu dla N liczb wprowadzonych z klawiatury.
    int n, min, pod, maks;
    cout << "Ile liczb chcesz wpisac?";
    cin >> n;
    cin >> min;
   
    for( int i = 1; i < n; i++ )
    {
        cin >> pod;
        if( min > pod )
             min = pod;
       
       
    }
    for( int i = 1; i < n; i++ )
    {
        if( min < pod )
             min = maks = pod;
       
    }
    cout << "minimalna liczba to: " << min;
    cout << "maksymalna liczba to: " << maks;
   
    return 0;
}
Wiem, że zdanie jest trochę inne, ale jak uda mi się wyznaczyć wartość minimalną i maksymalną, to ze średnią sobie poradzę.
Liczę na pomoc i wskazówki.
Pozdrawiam
P-119062
pekfos
» 2014-10-20 19:02:49
Z czego ty tu chcesz wyznaczyć tą wartość minimalną..? n razy porównujesz te same wartości. Obliczanie maksimum ma tu jeszcze mniej sensu.
P-119064
kasiula03
Temat założony przez niniejszego użytkownika
» 2014-10-20 19:17:32
Drobny błąd, już skorygowałam. Ale dalej nie wiem jak ruszyć z tą wart największą.
P-119069
SocrateZ
» 2014-10-20 19:18:23
Pokaż kod po korekcie.

Co to w ogóle za zmienna:
cin >> min;
P-119070
kasiula03
Temat założony przez niniejszego użytkownika
» 2014-10-20 19:21:45
Zedytowałam pierwszy post. Jeżeli wyrzucić tą drugą funkcje for, to minimalna wartość liczy się dobrze, ale jak mówiłam to było już kombinowanie.

* Zmienna cin >> min jest to pierwsza liczba, którą wpisujemy i która z automatu jest najmniejsza, dlatego tak ją oznaczyłam
P-119071
SocrateZ
» 2014-10-20 19:30:05
Moje zastrzeżenia co do tego kawałka:
C/C++
cin >> min;

for( int i = 1; i < n; i++ )
{
    cin >> pod;
    if( min > pod )
         min = pod;
   
   
}
for( int i = 1; i < n; i++ )
{
    if( min < pod )
         min = maks = pod;
   
}

Jeżeli min oznacza wartośc minimalną a max wartość maksymalną - po co pobierać z klawiatury wartość minimalną?
Lepiej wcześniej zdefiniować wartości dla poszczególnych zmiennych.

Nie operujesz tu na tablicach, więc pobierane wartości nie zapisują się - jedynie ostatnia do zmiennej INT.
Dlatego nie możesz użyć drugiej pętli.
Proponowałbym takie rozwiązanie zamiast tych dwóch pętli FOR:
C/C++
int i = 0;
cin >> pod;
min = max = pod;
while( ++i < n )
{
    cin >> pod;
    if( min > pod )
         min = pod;
   
    if( max < pod )
         max = pod;
   
}
P-119072
kasiula03
Temat założony przez niniejszego użytkownika
» 2014-10-20 19:37:14
Nie rozumiem tego fragmentu "min = max = pod;" nie bardzo współgra. Poza tym po wprowadzeniu Twoich zmian wyskakuje mi błąd kompilatora " 'pod' cannot appear in a constant-expression| "
P-119073
SocrateZ
» 2014-10-20 19:43:07
Masz coś takiego?
C/C++
#include <iostream>

using namespace std;

int main()
{ //Wyznaczenie średniej, największego oraz najmniejszego elementu dla N liczb wprowadzonych z klawiatury.
    int n, min, pod, max;
    cout << "Ile liczb chcesz wpisac?";
    cin >> n;
   
    int i = 0;
    cin >> pod;
    min = max = pod;
    while( ++i < n )
    {
        cin >> pod;
        if( min > pod )
             min = pod;
       
        if( max < pod )
             max = pod;
       
    }
    cout << "minimalna liczba to: " << min;
    cout << "maksymalna liczba to: " << max;
   
    return 0;
}
P-119075
« 1 » 2
  Strona 1 z 2 Następna strona