C/Visual C - Error de código

 
Vista:

Error de código

Publicado por Catalina Herrera González (1 intervención) el 09/06/2023 17:45:25
Alguien podría ayudarme con el código de mi proyecto? Está hecho en C y es el siguiente:
//Simular el PROCESO DE MATRICULA de la universidad de Talca
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//----------------------------------------------------------------------------------

//definir cantidad de estudiantes y programas
#define MAX_ESTUDIANTES 10
#define MAX_PROGRAMAS 3

//----------------- ESTRUCTURAS -------------------------------------------------------

typedef struct solicitudIngreso{
//datos del solicitante
char nombreCompleto[100];
int rut;
//antecedentes academicos
//ListadoNotas (NEM)...
int promedioMedia;
int promedioLenguaje;
int promedioMatematicas;
int promedioCiencias;
int promedioHistoria;
//agregar notas de psu y programa academico
int psuLenguaje;
int psuMatematicas;
int psuCiencias;
int psuHistoria;
char programaElegido[50];
} solicitantes;

typedef struct ProgramaAcademico{
char nombre[50];
int arancel;
//Numero de estudiantes maximo definido por programa
int cuposDisponibles;
//INLCUIR LISTA DE INGRESANTES EN ALGUN LUGAR
//int listaIngresantes[10];
} programaAcademico;

typedef struct EstudiantesMatriculados{
char carrera[20];
int deudaArancel;
} matriculados;


//-------------FUNCIONES------------------------------------------------

void registrarPrograma(programaAcademico *programa, int *j, char nombre[20], int arancel, int cuposDisponibles){
strcpy((programa + *j) -> nombre, nombre);
programa[*j].arancel = arancel;
programa[*j].cuposDisponibles = cuposDisponibles;
//programa[*j].listaIngresantes = listaIngresantes;
*j++;
}

void registrarSolicitante(solicitantes *solicitante, int *i, char nombreCompleto[50], int rut, int promedioMedia, int promedioLenguaje, int promedioMatematicas, int promedioCiencias, int promedioHistoria, int psuLenguaje, int psuMatematicas, int psuCiencias, int psuHistoria, char programaElegido[20]){
strcpy((solicitante + *i) -> nombreCompleto, nombreCompleto);
solicitante[*i].rut = rut;
//solicitante[*i].ListadoNotas = ListadoNotas;
solicitante[*i].promedioMedia = promedioMedia;
solicitante[*i].promedioLenguaje = promedioLenguaje;
solicitante[*i].promedioMatematicas = promedioMatematicas;
solicitante[*i].promedioCiencias = promedioCiencias;
solicitante[*i].promedioHistoria = promedioHistoria;
solicitante[*i].psuLenguaje = psuLenguaje;
solicitante[*i].psuMatematicas = psuMatematicas;
solicitante[*i].psuCiencias = psuCiencias;
solicitante[*i].psuHistoria = psuHistoria;
strcpy((solicitante + *i) -> programaElegido, programaElegido);
*i++;
}

void imprimirSolicitantes (solicitantes *solicitante){
//int i
//int d=i;
printf ("Nombre: %s\n", solicitante->nombreCompleto);
printf ("Rut: %i\n", solicitante->rut);
//printf ("Listado de notas: %i\n", solicitante[d].ListadoNotas);
printf ("Promedio de media: %d\n", solicitante->promedioMedia);
printf ("Promedio de lenguaje: %d\n", solicitante->promedioLenguaje);
printf ("Promedio de matematicas: %d\n", solicitante->promedioMatematicas);
printf ("Promedio de ciencias: %d\n", solicitante->promedioCiencias);
printf ("Promedio de historia: %d\n", solicitante->promedioHistoria);
printf ("PSU Lenguaje: %d\n", solicitante->psuLenguaje);
printf ("PSU Matematicas: %d\n", solicitante->psuMatematicas);
printf ("PSU Ciencias: %d\n", solicitante->psuCiencias);
printf ("PSU Historia: %d\n", solicitante->psuHistoria);
printf ("Programa elegido: %s\n", solicitante->programaElegido);
printf ("\n");
}

void evaluarSolicitudes(solicitantes *solicitante, int *i, FILE *punteroArchivo3, FILE *punteroArchivo4, FILE *punteroArchivo5, FILE *punteroArchivo6) {

if (strcmp(solicitante[*i].programaElegido, "carrera 1") == 0){
fprintf(punteroArchivo4, " %s; %i; %i; %i; %i; %i; %i; %i; %i; %i; %i; %s\n", solicitante[*i].nombreCompleto, solicitante[*i].rut, solicitante[*i].promedioMedia, solicitante[*i].promedioLenguaje, solicitante[*i].promedioMatematicas, solicitante[*i].promedioCiencias, solicitante[*i].promedioHistoria, solicitante[*i].psuLenguaje, solicitante[*i].psuMatematicas, solicitante[*i].psuCiencias, solicitante[*i].psuHistoria, solicitante[*i].programaElegido);
}

if (strcmp(solicitante[*i].programaElegido, "carrera 2") == 0){
fprintf(punteroArchivo5, " %s; %i; %i; %i; %i; %i; %i; %i; %i; %i; %i; %s\n", solicitante[*i].nombreCompleto, solicitante[*i].rut, solicitante[*i].promedioMedia, solicitante[*i].promedioLenguaje, solicitante[*i].promedioMatematicas, solicitante[*i].promedioCiencias, solicitante[*i].promedioHistoria, solicitante[*i].psuLenguaje, solicitante[*i].psuMatematicas, solicitante[*i].psuCiencias, solicitante[*i].psuHistoria, solicitante[*i].programaElegido);
}

if (strcmp(solicitante[*i].programaElegido, "carrera 3") == 0){
fprintf(punteroArchivo6, " %s; %i; %i; %i; %i; %i; %i; %i; %i; %i; %i; %s\n", solicitante[*i].nombreCompleto, solicitante[*i].rut, solicitante[*i].promedioMedia, solicitante[*i].promedioLenguaje, solicitante[*i].promedioMatematicas, solicitante[*i].promedioCiencias, solicitante[*i].promedioHistoria, solicitante[*i].psuLenguaje, solicitante[*i].psuMatematicas, solicitante[*i].psuCiencias, solicitante[*i].psuHistoria, solicitante[*i].programaElegido);
}
*i++;
}


//-----------------------------------------------------------------------

int main() {
//Estudiante estudiantes[MAX_ESTUDIANTES];
programaAcademico programas[MAX_PROGRAMAS];
//int numEstudiantes = MAX_ESTUDIANTES;
//int numProgramas = MAX_PROGRAMAS;

//DEFINIR CARRERAS...
programaAcademico programa[MAX_PROGRAMAS];
int j = 0;

FILE *punteroArchivo1 = fopen("programasAcademicos.txt", "r+");

registrarPrograma(programa, &j, "carrera1", 100000, 10);
fprintf(punteroArchivo1, " %s; %d; %d\n", programa[j].nombre,programa[j].arancel,programa[j].cuposDisponibles);
registrarPrograma(programa, &j, "carrera2", 100000, 10);
fprintf(punteroArchivo1, " %s; %d; %d\n", programa[j].nombre,programa[j].arancel,programa[j].cuposDisponibles);
registrarPrograma(programa, &j, "carrera3", 100000, 10);
fprintf(punteroArchivo1, " %s; %d; %d\n", programa[j].nombre,programa[j].arancel,programa[j].cuposDisponibles);

int fclose(FILE *punteroArchivo1);

//INGRESAR ESTUDIANTES y AGREGARLOS A LA LISTA DE POSTULANTES.............

solicitantes solicitante[MAX_ESTUDIANTES];
int i = 0;

FILE *punteroArchivo2 = fopen("solicitantes.txt", "r+");
FILE *punteroArchivo3 = fopen("listaPostulantes.txt", "r+");

while (i<MAX_ESTUDIANTES){
fscanf(punteroArchivo2, " %s; %i; %i; %i; %i; %i; %i; %i; %i; %i; %i; %s\n", solicitante[i].nombreCompleto, &solicitante[i].rut, &solicitante[i].promedioMedia, &solicitante[i].promedioLenguaje, &solicitante[i].promedioMatematicas, &solicitante[i].promedioCiencias, &solicitante[i].promedioHistoria, &solicitante[i].psuLenguaje, &solicitante[i].psuMatematicas, &solicitante[i].psuCiencias, &solicitante[i].psuHistoria, solicitante[i].programaElegido);

fprintf(punteroArchivo3, " %s; %i; %i; %i; %i; %i; %i; %i; %i; %i; %i; %s\n", solicitante[i].nombreCompleto, solicitante[i].rut, solicitante[i].promedioMedia, solicitante[i].promedioLenguaje, solicitante[i].promedioMatematicas, solicitante[i].promedioCiencias, solicitante[i].promedioHistoria, solicitante[i].psuLenguaje, solicitante[i].psuMatematicas, solicitante[i].psuCiencias, solicitante[i].psuHistoria, solicitante[i].programaElegido);

i++;
}

int fclose(FILE *punteroArchivo2);
int fclose(FILE *punteroArchivo3);


//MOVER POSTULANTES A RESPECTIVOS ARCHIVOS DE CARRERA.........
FILE *punteroArchivo4;
if ((punteroArchivo4 = fopen("carrera1.txt", "r+"))== NULL){
printf("No es posible abrir el archivo\n");
}
FILE *punteroArchivo5;
if ((punteroArchivo5 = fopen("carrera2.txt", "r+"))== NULL){
printf("No es posible abrir el archivo\n");
}
FILE *punteroArchivo6;
if ((punteroArchivo6 = fopen("carrera3.txt", "r+"))== NULL){
printf("No es posible abrir el archivo\n");
}

while(i<MAX_ESTUDIANTES) {
evaluarSolicitudes(solicitante, &i, punteroArchivo3, punteroArchivo4, punteroArchivo5, punteroArchivo6);
i++;
}

return 0;
}

Funciona mal y no sé por qué. Creo que el programa cae al leer los datos existentes del archivo "solicitantes.txt" para escribirlos en el archivo "listaPostulantes.txt", pero no estoy segura de porqué ni sé cómo arreglarlo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 89
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Error de código

Publicado por Bruno (38 intervenciones) el 10/06/2023 19:03:20
¿Podrías publicar el enunciado de tu proyecto o los requerimientos? O escríbeme al mail y te ayudo.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar