Denunciar

Problema con código lenguaje C

Haz una pregunta turcaso20 2Publicaciones jueves, 23 de enero de 2014Fecha de inscripción martes, 3 de octubre de 2017 Última intervención
El modulo lo que debe hacer es permitir al usuario el ingreso de los datos de alumnos en una estructura vacía e intercalarlos de forma que quede ordenado de forma alfabética. Una ayuda :P.El codigo entero tiene un menu con varias opciones pero esta es la que me da problemas al probarlo.

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define N 5
using namespace std;



typedef struct
{
char Nombre[40];
int dni;
int Legajo;
int NotaParcial1;
int NotaParcial2;
int NotaRecuperatorio;
int NotaTallerC;
int NotaRecuperatorioC;
}Alumnos;

void IncorporaAlumno(Alumnos []);

int main(int argc, char** argv) {
Alumnos Al[N];
IncorporaAlumno(Al);
return 0;

}

void IncorporaAlumno(Alumnos alu[])
{
int NumeroLegajo,NumeroDNI,posicion,j,p,i;
char cadenaNombre[40];

printf("ingrese los datos de los alumnos\n");
for(i=0;i<N;i++)
{
printf("Nombre y Apellido\n");
gets(cadenaNombre);
printf("D.N.I\n");
scanf("%d",&NumeroDNI);
getchar();
printf("Legajo\n");
scanf("%d",&NumeroLegajo);
getchar();

if(i==0)
{
strcpy(alu[i].Nombre,cadenaNombre);
alu[i].dni=NumeroDNI;
alu[i].Legajo=NumeroLegajo;
}

else
{printf("%s\n",alu[i].Nombre);
for(j=0;j<i;j++)
{
p=strcmp(alu[j].Nombre,cadenaNombre);
if(p>0)
{
for(posicion=i;posicion>j;posicion--)
{
strcpy(alu[posicion].Nombre,alu[posicio...
alu[posicion].Legajo=alu[posicion-1].Le...
alu[posicion].dni=alu[posicion-1].dni;
}
strcpy(alu[j].Nombre,cadenaNombre);
alu[j].dni=NumeroDNI;
alu[j].Legajo=NumeroLegajo;
}
}
}
}
for(i=0;i<N;i++){
printf("%s\t",alu[i].Nombre);
printf("%d\n",alu[i].Legajo);}
}

Los miembros obtienen más respuestas que los usuarios anónimos.

Ser miembro te permite llevar un seguimiento detallado de tus consultas.

Ser miembro te permite disfrutar de opciones adicionales.

¿Todavía no eres usuario?

¡Inscríbete, es gratis y toma menos de un minuto!