[ ssnnaaxx @ 01.02.2006. 12:24 ] @
| imam jedan problem s jednim programom,nikako da ga riješim,radi se o programu koji treba da ispituje tačnost zagrada ... primjer:
kad upišemo ovo {2+[2(3-1)]-2} da ispiše ispravno a
kad upišemo ovo {2+[2(3-1)]-2 da ispiše neispravno jer fali jedna zagrada , a to bi morao uraditi preko funkcija ,,, hvala!!!! |
[ Neznalica_sa_ugla @ 01.02.2006. 12:34 ] @
Mislim da nije problem uvesti brojac zagrada kada se zagrada otvori brojac se uverca , a kada se zatvori brojac smani , zagrade su ok ako je brojac == 0
[ dimitar 16 @ 01.02.2006. 12:52 ] @
Pri ucitavanje broj otvoreni zagrada ne sme da bude manji od broj zatvoreni zagrada, t.e treba brojac >= 0, a na kraj mora da bude brojac == 0.
[ ssnnaaxx @ 01.02.2006. 13:02 ] @
hvala , al je problem sto nisam bas najbolji u programiranju pa ne znam kako to da uradim preko funkcija .... ??
[ dimitar 16 @ 01.02.2006. 20:56 ] @
Code:
#include <iostream>
using namespace std;
int main()
{
char c;
int n, br = 0, f = 1;
cin >> n;
for (int i=0; i<n; i++) {
cin >> c;
if (c=='(' || c=='[' || c=='{') ++br; else
if (c==')' || c==']' || c=='}') --br;
if (br < 0) {
cout << "greska";
f = 0;
break;
}
}
if (f && br==0) cout << "ok";
}
[ ssnnaaxx @ 01.02.2006. 21:49 ] @
tnx prijatelju
[ blaza @ 01.02.2006. 23:47 ] @
To resenje ne pije vodu - npr. sta ako parovi otvorena zagrada/zatvorena zagrada nisu istog tipa?
Code:
primer1. {2+3]
primer2. ([3*7)+2]
[ NrmMyth @ 02.02.2006. 07:57 ] @
HINT: rekurzivna provjera!
[ blaza @ 02.02.2006. 11:28 ] @
Mozda je bolje upotrebiti stack.
[ djordje @ 02.02.2006. 12:13 ] @
napisi 3 petlje za svaki tip zagrade posebno
[ japan @ 02.02.2006. 12:38 ] @
mislim da ni to ne pije vodu... {[2*3}]...
jedino resenje je stack... na stack se stavljaju leve zagrade, a skida se sa stacka kad naidje odgovarajuca desna. ako desna nije odgovarajuca, prijavi se greska. na kraju se samo proveri da li je stack prazan.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.