Ciao a tutti !
Potreste darmi una mano con questo esercizio :
"Letta una stringa S di n = 1 caratteri appartenenti all’alfabeto A, verificare che S sia una espressione ben formata"
Alfabeto A = {a,b}
Ben formata = il numero di caratteri 'a' deve essere uguale al numero di caratteri 'b' , e per ogni indice della stringa il numero di caratteri 'a' deve
essere maggiore o uguale al numero di caratteri 'b'
Questo è il mio codice:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAX 100
int verifica1(char s[MAX],int n){
int i,cont=0,flag=0;
for(i=0;i<n;i++){
while(cont>=0){
if(s[i]='a')
cont++;
else
cont--;
}
}
if(cont>=0)
flag=1;
return(flag);
}
int verifica2(char s[MAX],int n){
int i,cont1=0,cont2=0,flag=0;
for(i=0;i<n;i++){
if(s[i]='a')
cont1++;
else
cont2++;
}
if(cont1==cont2)
flag=1;
return(flag);
}
int main(void){
char s[MAX];
int n;
printf("Inserisci una parola nell'alfabeto A : ");
scanf("%s",s);
n=strlen(s);
if(verifica1(s,n)==1 && verifica2(s,n)==1)
printf("s e' una stringa ben formata");
else
printf("s non e' una stringa ben formata");
return(0);
}
Se inserisco aabbab mi dice che non è una stringa ben formata
Dove sbaglio ?
Grazie mille