Ver Mensaje Individual
  #38 (permalink)  
Antiguo 03/02/2005, 12:26
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 5 meses
Puntos: 74
Arreglado, habia dos pequeños errores (mas que nada descuidos en el bucle que ordena los nombres):

1.strcpy(aux.nombre,alumno[i].nombre);
strcpy(aux.nombre,alumno[i].nombre);

deberia ser
strcpy(aux.nombre,alumno[i].nombre);
strcpy(aux.apellido,alumno[i].apellido);

por eso no salia el apellido, aux tenia el apellido en blanco!

2.alumno[i+1].prom=aux.prom;
alumno[i+1].legajo=aux.prom;

deberia ser:
alumno[i+1].prom=aux.prom;
alumno[i+1].legajo=aux.legajo;

Aca esta el codigo un poco mas pulido (legible):
Código:
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>

#define cant 5

void main()
{
  struct colegio
  { 
    int legajo;
    char apellido[30];
    char nombre[30];
    float prom;
  } alumno[cant],aux;

  int i;
  //clrscr();
  for (i = 0; i < cant; i++)
  {
    printf("ingrese el nro. de legajo del alumno\r\n");
    scanf("%d", &alumno[i].legajo);
    fflush(stdin);
    printf("ingrese el apellido del alumno (maximo 30 carac.)\r\n");
    gets(alumno[i].apellido);
    fflush(stdin);
    printf("ingrese el nombre del alumno (maximo 30 carac.)\r\n");
    gets(alumno[i].nombre);
    fflush(stdin);
    printf("ingrese el promedio del alumno\r\n");
    fflush(stdin);
    scanf("%f",&alumno[i].prom);
    fflush(stdin);
    //clrscr();
  }
  for (i = 0; i < cant; i++)
  {
    if (alumno[i].prom > alumno[i+1].prom)
    {
      aux.prom = alumno[i].prom;
      aux.legajo = alumno[i].legajo;
      strcpy(aux.nombre, alumno[i].nombre);
      strcpy(aux.apellido, alumno[i].apellido);

      alumno[i].prom = alumno[i+1].prom;
      alumno[i].legajo = alumno[i+1].legajo;
      strcpy(alumno[i].nombre, alumno[i+1].nombre);
      strcpy(alumno[i].apellido, alumno[i+1].apellido);

      alumno[i+1].prom = aux.prom;
      alumno[i+1].legajo = aux.legajo;
      strcpy(alumno[i+1].apellido, aux.apellido);
      strcpy(alumno[i+1].nombre, aux.nombre);
    }
  }

  for (i = 0; i < cant; i++)
  { 
    printf("%d\t%s,%s\t%.02f\r\n", alumno[i].legajo, alumno[i].apellido, alumno[i].nombre, alumno[i].prom);
  }
  getch();
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO