PI-ITBA / 2024_02

Consultas 2C 2024
4 stars 0 forks source link

TP7E5 #67

Open Agustin-Pomares opened 1 month ago

Agustin-Pomares commented 1 month ago

Buenas, mi problema con este ejercicio es... Todo. Explico: tengo la idea de lo que el programa tiene que hacer, (seguramente se nota mi intención en el código de la función), pero cuando la trato de probar, hace agua. Haciendo caso a los mensajes de error, cambié cosas una y otra vez, pero nada funcionaba y sentía que estaba haciendo cada vez un desastre mayor.

Me ayudaría cualquier consejo acerca de cómo modificar la función para que haga lo que quiero que haga. Por si las dudas, también paso el programa que me armé para testear, ya que seguramente haya problemas entre los datos que doy y los que debería dar. Dejo entonces el código ORIGINAL (antes de que lo empezara a "enchastrar") de mis funciones:

#include <string.h>
#include <stdio.h>
#define NRO_ESTUDIANTES 2

void
courseSort(const char * arrayNombres[], const char arrayCurso[], char * cursoG[], char * cursoH[]){

    int jg=0;
    int jh=0;
    for(int i=0; strlen(arrayNombres[i])==0; i++){
        if(arrayCurso[i]=='G'){
            strcpy(cursoG[jg++], arrayNombres[i]);
        }
        else{
            strcpy(cursoH[jh++], arrayNombres[i]);
        }
    }
}

// Armo prueba

int
main(void){
    const char nombres[NRO_ESTUDIANTES+1]= {"Julián", "Sebastián", ""};
    char cursos[]= {'G', 'H'};
    char cursoG[NRO_ESTUDIANTES];
    char cursoH[NRO_ESTUDIANTES];

    courseSort(nombres, cursos, cursoG, cursoH);
    printf("Integrante/s del curso G: %s\n", cursoG);
    printf("Integrante/s del curso H: %s\n", cursoH);
}

Seguramente mezclé muchas cosas, así que me disculpo de antemano, y agradezco cualquier ayuda.

marcelogarberoglio commented 1 month ago

Empecemos por el principio. Esto

const char nombres[NRO_ESTUDIANTES+1]= {"Julián", "Sebastián", ""};

Es un array de chars, no punteros a chars Lo mismo estos dos

char cursoG[NRO_ESTUDIANTES];
char cursoH[NRO_ESTUDIANTES];