[C++] działania na tablicach

Morphine1
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 6 maja 2014, o 18:22
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 1 raz

[C++] działania na tablicach

Post autor: Morphine1 »

Witam czy ktoś mógłby mi pomóc z zagadnieniem a konkretnie programem losującym do tablicy 50 elementowej , liczby z zakresu 0..100 , następnie wypisujący zawartość tej tablicy , następnie wypisujący pierwszą napotkaną liczbę podzielną przez 3 lub przez 5.
Dokładnie mam problem z tą ostatnią częścią , czyli wypisanie na ekran pierwszej napotkanej liczby podzielnej przez 3 lub 5 , czy ktoś pomoze?

Narazie napisałem cos takiego i wypisuje mi wszystkie liczby podzielne przez 3 lub przez 5 oraz wszystkie elementy tablicy. Nie wiem jak zrobić by wypisywało oprócz elementów tablicy jeszcze tylko tę pierwszą liczbę podzielną przez 3 lub 5

Kod: Zaznacz cały

#include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;

const int w=50;
int tab[w];

void wczytaj()
{
     srand(time(NULL));
   for(int i=0; i<w; i++)
       
{
       tab[i]=rand()%(100+1);

}
}

void podzielna()
 {
 for(int i=0; i<=w; i++)
   {
       if(tab[i]%3==0 || tab[i]%5==0)
   
          cout << tab[i] << endl;
           }
}


void wypisz()
{
 cout <<"Zawartosc tablicy : " << endl;
  for(int i=0; i<w; i++)
{
           cout <<tab[i] << " , " ;

}

          cout <<endl <<endl <<endl;
cout <<"Liczba podzielne przez 3 lub 5 : " <<endl;
}



int main(int argc, char *argv[])
{

wczytaj();
wypisz();
podzielna();
    system("PAUSE");
    return EXIT_SUCCESS;
}
-- 6 maja 2014, o 18:31 --
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C++] działania na tablicach

Post autor: Kacperdev »

umieść komendę break;

Kod: Zaznacz cały

void podzielna()
 {
 for(int i=0; i<=w; i++)
   {
       if(tab[i]%3==0 || tab[i]%5==0)
   
          cout << tab[i] << endl;
          break;
           }
}
Morphine1
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 6 maja 2014, o 18:22
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 1 raz

[C++] działania na tablicach

Post autor: Morphine1 »

Umieściłem , nie wypisało nic w ogóle-- 6 maja 2014, o 18:46 --a nie jednak działa , coś scięło się , dzieki dzieki !!
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C++] działania na tablicach

Post autor: Kacperdev »

Teraz zauważyłem, że brak klamr.

Kod: Zaznacz cały

void podzielna()
 {
 for(int i=0; i<=w; i++)
   {
       if(tab[i]%3==0 || tab[i]%5==0)
   {
          cout << tab[i] << endl;
          break;
}
           }
}
Teraz spróbuj. Po prostu break miałbyć również w instrukcji warunkowej.
Ostatnio zmieniony 6 maja 2014, o 18:51 przez Kacperdev, łącznie zmieniany 2 razy.
Morphine1
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 6 maja 2014, o 18:22
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 1 raz

[C++] działania na tablicach

Post autor: Morphine1 »

Jest okej , dzięki wielkie
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C++] działania na tablicach

Post autor: Kacperdev »

Popraw kod dodając te klamry, bo to, że zadziałało to szczęśliwy zbieg okoliczności wylosownych liczb.
Bez klamr separujących zawsze sprawdzi tylko pierwszą liczbę a później wyjdzie z pętli.
Morphine1
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 6 maja 2014, o 18:22
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 1 raz

[C++] działania na tablicach

Post autor: Morphine1 »

Dopisałem je od razu :p
ODPOWIEDZ