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

Błąd w zadaniu związanym z tablicami

Ostatnio zmodyfikowano 2016-10-03 21:25
Autor Wiadomość
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:
C/C++
#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.
P-152223
michal11
» 2016-10-03 21:10:01
A nie wystarczy ?
C/C++
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ę.
P-152224
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:
C/C++
#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?
P-152226
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.
P-152227
« 1 »
  Strona 1 z 1