Błąd w zadaniu związanym z tablicami
Ostatnio zmodyfikowano 2016-10-03 21:25
Meusz Temat założony przez niniejszego użytkownika |
Błąd w zadaniu związanym z tablicami » 2016-10-03 20:47:12 Zadanie wygląda następująco: Tata Krysi pracuje w cukierni. Każdego dnia przynosi do domu pudełek z cukierkami. W -tym pudełku znajduje się cukierków. Krysia może wybrać jedno z pudełek i o ile jest tam parzysta liczba cukierków, może je wszystkie zjeść. Jeżeli natomiast w wybranym pudełku jest nieparzyście wiele cukierków, trafiają one do brzuszka jej młodszego brata, Adasia. Które pudełko ma wybrać Krysia, aby zjeść jak najwięcej cukierków? Wejście W pierwszej linii wejścia znajduje się liczba całkowita oznaczająca liczbę pudełek z cukierkami. W następnej linii znajduje się pooddzielanych spacjami liczb oznaczających liczby cukierków w kolejnych pudełkach. Wyjście Program powinien wypisać jedną liczbę oznaczającą numer pudełka dającego Krysi najwięcej cukierków. W przypadku kilku tak samo korzystnych pudełek wskaż spośród nich to o najmniejszym numerze. Pudełka są ponumerowane od 1 do . Przykład Dla danych wejściowych: 4 6 8 15 8 poprawną odpowiedzią jest: 2 Mój kod wygląda tak: #include <bits/stdc++.h> using namespace std; int n, wynik, kandydat; long long a[ 1000111 ]; int main() { cin >> n; for( int i = 1; i <= n; i++ ) { cin >> a[ i ]; } for( int i = 1; i <= n; i++ ) { if( a[ i ] >= a[ i - 1 ] && a[ i ] != kandydat ) { if( a[ i ] % 2 == 0 ) { wynik = i; kandydat = a[ i ]; } } } cout << wynik; }
W czym tkwi problem? Za powyższy kod dostaję 60 punktów, lecz nie jestem w stanie znaleźć błędu. |
|
michal11 |
» 2016-10-03 21:10:01 A nie wystarczy ? for( int i = 0; i < n; ++i ) { cin >> num; if( num > max && num % 2 == 0 ) { max = num; indx = i + 1; } }
Nie masz napisane w treści zadania, że trzeba to zrobić na tablicach. Swoją droga chciałbym się w końcu dowiedzieć kto uczy tych wszystkich ludzi tworzenia zmiennych globalnych, to już któryś post gdzie widzę taką praktykę. |
|
Meusz Temat założony przez niniejszego użytkownika |
» 2016-10-03 21:23:07 Dzięki za szybką odpowiedź, ostateczny kod wyglądał tak: #include <bits/stdc++.h> using namespace std; int n, wynik, kandydat, maks, num; int main() { cin >> n; for( int i = 0; i < n; ++i ) { cin >> num; if( num > maks && num % 2 == 0 ) { maks = num; wynik = i + 1; } } cout << wynik; }
Co miałeś na myśli mówiąc o tworzeniu zmiennych globalnych? Jestem początkujący w C++, a czy tworzenie aż tylu intów jest złe? |
|
michal11 |
» 2016-10-03 21:25:50 Tworzenie zmiennych nie jest złe dopóki ma to sens i są one potrzebne, u ciebie widzę tylko, że zmienna kandydat jest nieużywana. Przenieś wszystkie swoje zmienne do maina i powinno być ok. |
|
« 1 » |