programacion en c

Iniciado por m87, 4 Junio 2010, 00:14 AM

0 Miembros y 1 Visitante están viendo este tema.

m87

Hola, recien estoy aprendiendo listas, me pueden decir que esta mal, porque no m compila??muchas gracias

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


struct fecha
{
char dia,mes,año;
};
struct alumno
{
int lu;
long int dni;
char apellido[20];
char nombre[20];
char carrera[25];
int edad;
struct fecha ing;
struct alumno*sig;
};

void DarAlta ()
{
struct alumno*aux;
struct alumno*inicio=NULL;
struct alumno*nuevo=((struct alumno*)malloc(sizeof(struct alumno)));
printf("INGRESE LOS DATOS:\N");
printf("lu:\n");
scanf("%d",&nuevo->lu);
printf("DNI:\n");
scanf("%d",&nuevo->dni);
printf("Apellido:\n");
scanf("%s",nuevo->apellido);
printf("nombre:\n");
scanf("%s",nuevo->nombre);
printf("carrera:\n");
scanf("%s",nuevo->carrera);
printf("edad:\n");
scanf("%d",&nuevo->edad);
printf("fecha de ingreso:\n");
printf("dia\n");
scanf("%d",nuevo->ing.dia);
printf("mes:\n");
scanf("%d",nuevo->ing.mes);
printf("a¤o:\n");
scanf("%d",nuevo->ing.año);
nuevo->sig=NULL;
if (inicio==NULL)
{
   inicio=nuevo;
}
else
   aux=inicio;
   if (aux->lu>nuevo->lu)
   {
    nuevo->sig=aux;
    inicio=nuevo;
   }
   else
   {
    while (aux->sig!=NULL & nuevo->lu>=aux->sig->lu)
    {
     aux=aux->sig;
    }
    nuevo->sig=aux->sig;
    aux->sig=nuevo;
   }
return;

}

@synthesize

#1
No me lo he mirado entero, pero declaras 3 char's y los rellenas con enteros...

Por favor, organiza un poco el código y utiliza GeSHI para que podamos corregir mejor...




Y ahora que me fijo, tu función no es Main, y aparte, la declaras void y pones un return que no retorna nada, un else sin corchetes.... Y mas cosas.
Antes de meterte a listas, estudiate bien la base...

nicolas_cof

Ademas de lo ya mencionado por Daemon Freedom

Estaria bueno que mires los errores o warnings que te tira el compilador, saben ser de mucha ayuda (algunas veces :P)

De ultima pon el log en este post!, asi te podemos orientar en base a eso y de paso aprendes a analizarlos.

Salu10.

[L]ord [R]NA

usa GESHI, asi es mas sencillo de leer el codigo para quienes te van a ayudar.

Gallu


Fíjate siempre en los mensajes que te da el compilador ...
Aquí te esta diciendo que tienes un error en la línea 8 , tienes una ñ metida en "año"  mejor intenta no usar eñes

lis.c:8: error: stray '\361' in program
lis.c:8: error: expected ':', ',', ';', '}' or '__attribute__' before 'o'


Este error es el más claro de todos , "\N" no es una secuencia válida de escape la correcta es "\n" , cambiala !

lis.c:27:9: warning: unknown escape sequence '\N'   // \N no es una secuencia de escape , prueba con \n
lis.c: In function 'DarAlta':


Esto esta relacionado con el error de la variable año de la estructura fecha

lis.c:46: error: 'struct fecha' has no member named 'a'
lis.c:46: error: stray '\361' in program
lis.c:46: error: expected ')' before 'o'
Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.