Wypisanie liczb niepodzielnych przez 3.

0

Witam.

Za zadanie mam napisać program:

Danych jest n liczb a1, a2, ..., an. Należy wypisać te liczby, które nie są podzielne przez 3.

Tutaj jest fragment kodu który napisałem i w którym utkwiłem w martwym punkcie.

                system("cls");
               int n, a, i;
               cout << "Podaj ile liczb ma byc:" << endl;
               cin >> n;
               cout << "Podaj " << n << " liczb do zadania:" << endl;
               cin >> a;
               int * tab = new int[a];

               for (i = 0; i < n; i++)
               {
               if ((tab[a] % 3) == 0)
               cout << a << " ";
                   }

Mógłby ktoś pomóc znaleźć rozwiązanie mojego problemu, lub chociaż mnie oświecić trochę z tą pętlą?

Pzdr. Patryk

1

% - to reszta z dzielenia, musi być niezerowa skoro szukasz niepodzielnych.

0

Fakt, mimo wszystko program nie działa tak jak należy i dalej nie mam pomysłu jak go napisać tak, żeby w każdej pętli wczytywał sobie 1 wartość wczytanych z a, które są wrzucone do tablicy, następnie te które nie są podzielne przez 3 zapisał i wyświetlił.

1

Liczb ma być n, ale wczytane n ignorujesz, na rzecz jednokrotnie wczytanego a, gdy potem tworzysz tablicę a intów, której niczym nie uzupełniasz. W pętli zawsze sprawdzasz element za ostatnim tablicy (UB), zamiast posiłkować się zmienną iterowaną i. Co tu jest źle?

0

Ok, już zrozumiałem co robiłem źle. Dzięki za pomoc, program śmiga tak jak trzeba. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0