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: #include <iostream>
using namespace std;
int main() { 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 |
|
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. |
|
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ą. |
|
SocrateZ |
» 2014-10-20 19:18:23 Pokaż kod po korekcie. Co to w ogóle za zmienna: cin >> min; |
|
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 |
|
SocrateZ |
» 2014-10-20 19:30:05 Moje zastrzeżenia co do tego kawałka: 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: int i = 0; cin >> pod; min = max = pod; while( ++i < n ) { cin >> pod; if( min > pod ) min = pod; if( max < pod ) max = pod; }
|
|
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| " |
|
SocrateZ |
» 2014-10-20 19:43:07 Masz coś takiego? #include <iostream>
using namespace std;
int main() { 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; } |
|
« 1 » 2 |