PI-ITBA / 2024_02

Consultas 2C 2024
4 stars 0 forks source link

ej 28 tp6 #71

Open morediazmacchi opened 1 month ago

morediazmacchi commented 1 month ago

hola! como estan? queria consultar nuevamente por el ejercicio 28 de la guia 6, creo haber acomodado todo lo que me corrigieron la ultima vez que consulte y no encuentro el error. Gracias

int elimVocales(char s[], int m[][CANT_VOCAL], unsigned int n){
    int read, write = 0;
    int flag=EXITO;
    int vAux[CANT_VOCAL]={0};
        for(read= 0 ; s[read] != '\0'; read ++){
            int letra = esVocal(s[read]);
            if (letra == -1){
                s[write++]= s[read];
            }
            else{
                if(vAux[letra] > n-1){
                    flag= ERROR;
                }
                else{
                    m[vAux[letra]++][letra] = read;
                }
            }
        }
    int i;
    for (i = 0; i< CANT_VOCAL; i++){
        m[vAux[i]][i]= -1;
    }
    s[write]='\0';
    return flag;
}

int esVocal(char s){ 
    int ret;
    if ((s == 'A') || (s =='a')){
        ret= 0;
    }
    else if ((s == 'E') || (s =='e')){
        ret= 1;
    }
    else if ((s == 'I') || (s =='i')){
        ret= 2;
    }
    else if ((s == 'O') || (s =='o')){
        ret= 3;
    }
    else if ((s == 'U') || (s =='u')){
        ret= 4;
    }
    else {
    ret = -1;
    }

    return ret;
}
marcelogarberoglio commented 1 month ago

El problema es que si la vocal ya superó la cantidad de eliminaciones la tenés que dejar en el string, e igual la estás eliminando. Después compará con la solución para ver una forma más elegante de hacer esVocal