1
« en: Jueves 8 de Mayo de 2014, 22:42 »
Buenas tardes gente, no me darian una manito con el error que me salta al compilar este codigo?
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct fecha {
int dia;
int mes;
int anio;
};
struct alumno {
char nomyape[40];
char legajo[10];
int edad;
struct fecha fec_nac;
}casa;
int carga(struct alumno[]);
void ord_edad(struct alumno[],int);
void ord_nombre(struct alumno[],int);
struct alumno busca(struct alumno[], int, char[]);
int main(){
char leg[10];
int opc;
int cant;
struct alumno alu[500];
cant = carga(alu);
printf("La cantidad de alumnos ingresados es: %d\n",cant);
printf("Presione enter para continuar...");
getchar();
getchar();
system("CLS");
do{
printf("MENU PRINCIPAL\n");
printf("--------------\n");
printf("1-Ordenar por edad\n");
printf("2-Ordenar por nombre\n");
printf("3-Buscar un alumno por legajo\n");
printf("4-Salir\n\n");
printf("Opcion elegida: ");
scanf("%d",&opc);
switch(opc){
case 1:
ord_edad(alu,cant);
break;
case 2:
ord_nombre(alu,cant);
break;
case 3:
printf("Ingrese el legajo que quiere buscar: ");
scanf("%s",&leg);
busca(alu,cant,leg);
break;
case 4:
break;
default:
printf("La opcion ingresada es incorrecta");
break;
}
}while(opc!=4);
return 0;
}
int carga(struct alumno m[500]){
char rta;
int i = 0;
do{
if (i>=1){
printf("Presione una enter para continuar...\n");
getchar();
getchar();
}
printf("ingrese el nombre y apellido del alumno: ");
gets(m[i].nomyape);
printf("ingrese el legajo del alumno: ");
gets(m[i].legajo);
printf("ingrese la edad del alumno: ");
scanf("%d",&m[i].edad);
printf("Ingrese la fecha de nacimiento: \n");
printf("Dia: ");
scanf("%d",&m[i].fec_nac.dia);
printf("Mes: ");
scanf("%d",&m[i].fec_nac.mes);
printf("Anio: ");
scanf("%d",&m[i].fec_nac.anio);
getchar();
do{
printf("\n");
printf("Desea ingresar otro alumno?");
scanf("%c",&rta);
printf("\n");
}while (rta != 'n' && rta != 's' && rta != 'S' && rta != 'N');
system("CLS");
i++;
}while (rta == 's' || rta == 'S');
return i;
}
void ord_edad(struct alumno m[500],int cant_alu){
int i,j;
struct alumno aux;
for (i=0;i<cant_alu;i++){
for (j=i+1;j<cant_alu;j++){
if (m[i].edad > m[j].edad){ //ORDENO DE MENOR A MAYOR
aux=m[i];
m[i]=m[j];
m[j]=aux;
}
}
}
printf("El orden de menor a mayor por edad es de la siguiente forma: \n\n");
for(i=0;i<cant_alu;i++){
printf("Nombre y apellido: %s\n",m[i].nomyape);
printf("Edad: %d\n",m[i].edad);
printf("Legajo: %s\n",m[i].legajo);
printf("Fecha de nacimiento: %d/%d/%d\n\n",m[i].fec_nac.dia,m[i].fec_nac.mes,m[i].fec_nac.anio);
}
printf("Presione ENTER para continuar.");
getchar();
getchar();
system("CLS");
}
struct alumno busca(struct alumno m[500],int cant_alu, char lega[10]){
struct alumno aux;
int i;
for (i=0;i<cant_alu;i++)
if (strcmp(m[i].legajo,lega)==0)
return m[i];
else return aux;
}
void ord_nombre(struct alumno m[500], int cant_alu){
int i,j;
struct alumno aux;
for (i=0;i<cant_alu;i++){
for (j=i+1;j<cant_alu;j++){
if (m[i].nomyape < m[j].nomyape){
aux=m[i];
m[i]=m[j];
m[j]=aux;
}
}
}
printf("El orden de menor a mayor por abecedario es de la siguiente forma: \n\n");
for(i=0;i<cant_alu;i++){
printf("Nombre y apellido: %s\n",m[i].nomyape);
printf("Edad: %d\n",m[i].edad);
printf("Legajo: %s\n",m[i].legajo);
printf("Fecha de nacimiento: %d/%d/%d\n\n",m[i].fec_nac.dia,m[i].fec_nac.mes,m[i].fec_nac.anio);
}
printf("Presione ENTER para continuar.");
getchar();
getchar();
system("CLS");
}
El error es el siguiente:
error: expected '=', ',', ';', 'asm' or '__attribute__' at end of input
y me marca la ultima linea del programa, es decir una vez terminado de procesar todo... no me doy cuenta...
PD:recien estoy empezando a programar en C, sean piadosos jaja