[C++] Wypisanie ostatnich liczb parzystych

marcixe12
Użytkownik
Użytkownik
Posty: 111
Rejestracja: 17 lis 2012, o 08:21
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 7 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: marcixe12 »

Napisać program, który wypisuje cztery ostatnie liczby parzyste z tablicy liczb całkowitych zachowując ich kolejność.

Kod: Zaznacz cały

A[14]={5,-3,25,13,-3,0,9,8,212,-32,152,25,20,3}
udało mi sie napisac tylko ze wypisuje parzyste pomożecie


Kod: Zaznacz cały

#include <iostream>
 
 
using namespace std;
int main ()
{
     int tab[]={5,-3,25,13,-3,0,9,8,212,-32,152,25,20,3};
      int a=0,n,k ;  
 
     for(int i=0 ; i<14  ; i++)
     {
 
      if (tab[i]%2==0) 
        cout<<tab[i]<<"  "<<endl;
 
}
 
 
 
           system("pause");
             }
 
Ostatnio zmieniony 24 sty 2013, o 14:02 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
kam_new93
Użytkownik
Użytkownik
Posty: 673
Rejestracja: 18 lip 2009, o 20:13
Płeć: Mężczyzna
Podziękował: 17 razy
Pomógł: 106 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: kam_new93 »

ja bym zadeklarowal tablice N elementową a nastepnie dodał taki warunek:
\(\displaystyle{ if(i==N-4){}\) N - liczba elementow tablicy
wypisz tab;\(\displaystyle{ }}\)
marcixe12
Użytkownik
Użytkownik
Posty: 111
Rejestracja: 17 lis 2012, o 08:21
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 7 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: marcixe12 »

nie bardzo rozumiem jak to zastosować
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: Althorion »

Musisz mieć gdzie przetrzymać liczby parzyste z tablicy. Dobrym pomysłem byłoby użycie kolekcji vector z biblioteki standardowej (choć bez tego też można sobie poradzić, będzie to wymagać jednak znacznie więcej kodu). Algorytm w ogólnym zarysie wyglądałby tak — przeglądasz tablicę, dodajesz wszystkie liczby parzyste z niej do wektora, następnie drukujesz cztery ostatnie elementy wektora.
royas
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 24 sie 2012, o 09:27
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Pomógł: 80 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: royas »

Tablica lub lepiej stos na przechowanie tych liczb. Przeglądasz daną tablicę od tyłu aż znajdziesz cztery liczby. Potem je wypisujesz.
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: Althorion »

Ani tablica, ani stos, obawiam się. Jeszcze tablicą miało by to jakiś sens (chociaż trzeba najpierw poznać jej rozmiar albo ją redeklarować co chwila), to stos jest przecież typu LIFO, a w poleceniu chcą by nie zmieniać kolejności tych liczb.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: Ser Cubus »

hmm, są 2 banalne metody, 1 to jak ktoś już wspomniał, użycie tablicy pomocniczej, a inna może być np taka

deklarujemy

Kod: Zaznacz cały

int liczba_parz = 0
, przeszukujemy tablicę od końca, jeżeli napotkamy liczbę parzystą, to

Kod: Zaznacz cały

liczba_parz++;
, jeżeli \(\displaystyle{ liczba_parz == 4}\) to zapamiętaj indeks i od tego indeksu wypisuj kolejne napotkane liczby w tablicy
royas
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 24 sie 2012, o 09:27
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Pomógł: 80 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: royas »

Althorion, ale daną tablicę przeglądamy od końca, czyli ostatnia liczba parzysta ląduje najgłębiej w stosie.
arcan
Użytkownik
Użytkownik
Posty: 106
Rejestracja: 17 gru 2012, o 23:56
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 7 razy
Pomógł: 31 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: arcan »

Ja bym zrobił taką pętlę

Kod: Zaznacz cały

int w=14;
for(int x=0;x<4;w--)
{

if(tab[w]mod2==0)
{
x++;
Cout << tab[w]; << "[]";
}}
Nie ma teraz kompa, więc nie moge skompilować, ale powinno działać
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: Althorion »

royas pisze:Althorion, ale daną tablicę przeglądamy od końca, czyli ostatnia liczba parzysta ląduje najgłębiej w stosie.
A tak. Nie wiem dlaczego chciałem przeglądać całą tablicę (wtedy miałbym cztery pierwsze liczby parzyste we właściwej kolejności, zamiast czterech ostatnich) . Faktycznie stos nadaje się więc do tego najlepiej.
marcixe12
Użytkownik
Użytkownik
Posty: 111
Rejestracja: 17 lis 2012, o 08:21
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 7 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: marcixe12 »

nie wiem cos takiego tylko wyświetla 78 20 152 -32

Kod: Zaznacz cały

#include <iostream>

using namespace std;
int main ()
{
     int tab[]={5,-3,25,13,-3,0,9,8,212,-32,152,25,20,3};
     int w=14; 
 
     for(int x=0 ; x<4  ; w--)
     {
 
      if (tab[w]%2==0 )
      {
      x++ ;   
     cout << tab[w]<<endl;
 
}
}
      system("pause");
}
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: Afish »

Na starcie wyjeżdżasz poza tablicę. To samo zrobisz, gdy w tablicy nie będzie czterech liczb parzystych.
m-2
Użytkownik
Użytkownik
Posty: 55
Rejestracja: 4 maja 2011, o 13:37
Płeć: Mężczyzna
Podziękował: 2 razy
Pomógł: 14 razy

[C++] Wypisanie ostatnich liczb parzystych

Post autor: m-2 »

I wyświetla w złej kolejności. Proponuję użyć rekurencji.
np.
Ukryta treść:    
ODPOWIEDZ