Prikazi cijelu temu 21.12.2013 00:16
dex Van mreze
Super Moderator
Registrovan od:23.02.2012
Lokacija:Knjazevac


Predmet:Re: C Zadaci za ispit - pomoc
Zadatak 11 glasi: Odrediti da li POSTOJI broj koji je unesen TACNO 3 puta.
Zadatak je dat da se vidi kako se djaci snalaze sa naredbama za prisilno upravljanje petljama.

pogledati
http://www.programiz.com/...-statement

U ovom zadatku imamo dve petlje, spoljnu i unutrasnju.
U spoljnoj uzima jedan po jedan clan niza, pa u unutrasnjoj proverava jos koliko istih clanova ima . Po izlasku iz unutrasnje proveravamo da li se clan ponavlja tri puta i ako se ponavlja nasilno prekidamo petlju, saopstavamo rezultat i zavrsavamo program.
Unutrasnju petlju ne smemo nasilno da prekinemo, jer moramo da proverimo da se broj ne sadrzi 4 ili vise puta. Ako program prodje kroz obe petlje i ne prekine se nasilno saopstavamo da takav broj ne postoji. Unutrasnja petlje mora da krene od 0, a ne od i+1 jer ako imamo na primer imali niz 1, 4, 2, 4, 4, 4, 5 ... druga cetvorka bi prekinula petlju i prijavila 4 kao broj koji se javlja TACNO 3 puta. Kao uslov postavljamo =4, jer svaki broj po jednom uporedjujemo i sa samim sobom.

Da je zadatak glasio koji je unesen tri ili vise puta, unutrasnja petlja bi mogla da startuje od i+1. Onda bi uslov za prekid stavili u okviru unutrasnje petlje, i cim naidje broj koji se ponavlja tri puta prekidamo obe petlje, saopstimo rezultat i kraj programa.

Prepravio sam Mirsadov kod, valjda je sve gramaticki ispravno, nemam kompajler da proverim
PreuzmiIzvorni kôd (C++):
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.    int broj ;
  7.    int prolaz = 0;
  8.    int k[20] ;
  9.    cout<<"Unesite 20 brojeva\n";
  10.    for (i=0;i<20;i++)
  11.    {
  12.        cout<<i+1<<"=> ";
  13.        cin>>niz[i];        
  14.    }
  15.    for (i=0;i<20;i++)
  16.    {
  17.        for (j=0;j<20;j++)
  18.         {
  19.            if(niz[i]==niz[j])
  20.            {
  21.            prolaz++;          
  22.            }        
  23.          }
  24.    if(prolaz==4)
  25.                        {                  
  26.            broj=niz[i];
  27.                    break
  28.                        }
  29.                         prolaz = 0 ;
  30.     }
  31.     if(prolaz==4)
  32.    {
  33.    cout<<"Broj: "<<broj<<" se ponavlja tacno 3 puta"<<endl;
  34.    }
  35.    else
  36.    {
  37.    cout<<"Nijedan broj se ne ponavlja tacno 3 puta"<<endl;
  38.    }
  39.    
  40.    
  41. system ("pause");
  42. return 0;
  43. }

P.S. 10. zadatak je resen na veoma interesantan nacin, ali zar nije bilo jednostavnije da se broj pretvori u string i rade operacije sa stringovima Happy