- Член од
- 12 мај 2006
- Мислења
- 44
- Поени од реакции
- 0
Еве решение во C и C++ (направив само копи/пејст да нема забуниdeXterche напиша:Ај програмерчиња да видиме кој ќе го испрограмира ова "Да се напише програма која контролира внесување на загради во внесен стринг {([])} и сите нивни комбинации (несмее голема отворена и мала затворена и слични невозможни работи "{]}")" Јас до негде стигнав ама ми изгледа посложена од што мислев.

int main()
{
stack mag,*m=&mag;
char niza[80], *s=niza;
int ok=1;
Init(m); printf("->");
scanf("%s",niza);
while(*s) {
switch(*s) {
case '(' :
case '[' :
case '{' : Push(m,*s); break;
case ')' : if(isEmpty(m) || Pop(m)!='(') ExprError(niza,s);break;
case ']' : if(isEmpty(m) || Pop(m)!='[') ExprError(niza,s); break;
case '}' : if(isEmpty(m) || Pop(m)!='{') ExprError(niza,s); break;
}
s++;
}
if(!isEmpty(m))
ExprError(niza,s);
else
printf("ExpressionOK\n");
return(0);
}
void ExprError(char*n, char *s)
{
int i;
printf("Errorin expresion: %s\n",n);
printf(" ");
for(i=0; i<(s-n); i++)
putchar(' ');
putchar('^');
exit(-1);
} /* ()()[](([{()()}()[{()()}()]])) */