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++):#include <iostream>
using namespace std;
int main()
{
int broj ;
int prolaz = 0;
int k[20] ;
cout<<"Unesite 20 brojeva\n";
for (i=0;i<20;i++)
{
cout<<i+1<<"=> ";
cin>>niz[i];
}
for (i=0;i<20;i++)
{
for (j=0;j<20;j++)
{
if(niz[i]==niz[j])
{
prolaz++;
}
}
if(prolaz==4)
{
broj=niz[i];
break
}
prolaz = 0 ;
}
if(prolaz==4)
{
cout<<"Broj: "<<broj<<" se ponavlja tacno 3 puta"<<endl;
}
else
{
cout<<"Nijedan broj se ne ponavlja tacno 3 puta"<<endl;
}
system ("pause");
return 0;
}
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