MaikelOO Temat założony przez niniejszego użytkownika |
Zadanie z wypisywaniem drugiej największej liczby. » 2018-03-05 21:29:01 Witam. Chciałbym zaznaczyć, że dopiero zaczynam przygodę z programowaniem także prosiłbym o komentarze bez docinek (w środowisku matematyczno/informatycznym dość często je na innych forach widziałem). Przechodząc do sedna problemu z którym się zmagam otóż wykonuje zadanie, w którym założone jest, że trzeba wpisać 'n' drużyn, a także ilości punktów tych drużyn, a na końcu wypisał wicemistrza. Udało mi się dojść do momentu, w którym program pokazywał największy element danej tablicy, ale od kiedy próbuje wyprowadzić drugi największy element to mój program, mimo udanej kompilacji, się wyłącza od razu po uruchomieniu. #include <iostream>
using namespace std;
int main() { int n; int t[ n ]; cin >> n; int maxo = 0; for( int i = 0; i < n; i++ ) cin >> t[ i ]; int maxi = t[ 0 ]; for( int i = 1; i < n; i++ ) if( t[ i ] > maxi ) maxi = t[ i ]; cout << maxi << endl; for( int i = 0; i < n; i++ ) if( t[ i ] == maxi ) cout << maxi << endl; for( int i = 0; i < n; i++ ) if(( t[ i ] > maxo ) &&( maxi > t[ i ] ) ) maxo = t[ i ]; cout << maxo << endl; }
Program dochodził do linijki wypisującej 'maxi', a wszelkie próby rozszerzenia programu poniżej kończyły się zamknięciem programu od razu po włączeniu. Prosiłbym o naprowadzenie gdzie popełniłem błąd i co powinienem zrobić by ten program poprawić. Z góry dziękuje i życzę miłego wieczoru/nocy :-)! |
|
maly7 |
» 2018-03-05 21:41:25 Jaki według Ciebie jest rozmiar tablicy t? |
|
MaikelOO Temat założony przez niniejszego użytkownika |
» 2018-03-05 21:44:52 Nie do końca rozumiem co masz na myśli..
int n - chodziło o utworzenie zmiennej 'n' int t[n] - chodziło o utworzenie zmiennej o rozmiarze n |
|
YooSy |
» 2018-03-05 22:35:00 A jaką wartość ma zmienna n ? Poza tym standard C++ mówi, że tablica statyczna ma mieć stały rozmiar, więc zmienna określająca rozmiar tablicy musi być const . edit: Zacznijmy od tego, że nawet nie potrzebujesz tablicy do rozwiązania tego zadania. Wystarczy aktualizować wartość maks i wicemaks o podaną wartość w n-iteracjach pętli. |
|
pekfos |
» 2018-03-05 23:20:51 |
|
MaikelOO Temat założony przez niniejszego użytkownika |
» 2018-03-06 16:18:07 No jeśli wczytam, że (cin >> n) 'n' to 6 przypuszczam, że ta tablica ma rozmiar 6 już do końca gdyż mimo, że jest to zmienna 'n' to nie jest ona nigdzie modyfikowana w późniejszych wierszach. Jak zresztą napisałem program wyłącza się od momentu gdy poniżej pierwszego "cout << maxi << endl; dopisuje kolejne pętle 'for'. Byłbym wdzięczny gdyby ktoś mi wytłumaczył co w tamtej części programu nie jest logicznego, bo na ten moment naprawdę nie widzę..
I przy okazji byłbym wdzięczny gdyby ktoś napisał właśnie tą drugą część programu bym porównał ją z moją i zobaczył gdzie i jaki błąd popełniłem. Wiem, że są na to inne sposoby, ale jestem pewien, że da się to zrobić tablicą także chciałbym to także wykonać tablicą już do końca. |
|
MaikelOO Temat założony przez niniejszego użytkownika |
» 2018-03-06 16:36:11 Okej, doszedłem do tego już sam i temat mogę uznać za zamknięty. #include <iostream>
using namespace std;
int main() { int n; cin >> n; int t[ n ]; for( int i = 0; i < n; i++ ) cin >> t[ i ]; int maxi = t[ 0 ]; int a = 0; for( int j = 1; j < n; j++ ) if( t[ j ] > maxi ) maxi = t[ j ]; for( int i = 0; i < n; i++ ) if(( t[ i ] < maxi ) &&( t[ i ] >= a ) ) a = t[ i ]; cout << a << endl;
Program działa poprawnie i spełnia swoje zadanie. Oczywiście także dziękuje ludziom, którzy udzielili się w tym temacie :) |
|
YooSy |
» 2018-03-06 16:53:19 |
|
« 1 » |