Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: m87 en 4 Junio 2010, 00:14 am



Título: programacion en c
Publicado por: m87 en 4 Junio 2010, 00:14 am
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;

}


Título: Re: programacion en c
Publicado por: @synthesize en 4 Junio 2010, 01:08 am
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...


Título: Re: programacion en c
Publicado por: nicolas_cof en 4 Junio 2010, 05:25 am
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.


Título: Re: programacion en c
Publicado por: [L]ord [R]NA en 4 Junio 2010, 05:31 am
usa GESHI, asi es mas sencillo de leer el codigo para quienes te van a ayudar.


Título: Re: programacion en c
Publicado por: Gallu en 4 Junio 2010, 12:58 pm

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
Código
  1. lis.c:8: error: stray '\361' in program
  2. lis.c:8: error: expected ':', ',', ';', '}' or '__attribute__' before 'o'
  3.  

Este error es el más claro de todos , "\N" no es una secuencia válida de escape la correcta es "\n" , cambiala !
Código
  1. lis.c:27:9: warning: unknown escape sequence '\N'   // \N no es una secuencia de escape , prueba con \n
  2. lis.c: In function 'DarAlta':
  3.  

Esto esta relacionado con el error de la variable año de la estructura fecha
Código
  1. lis.c:46: error: 'struct fecha' has no member named 'a'
  2. lis.c:46: error: stray '\361' in program
  3. lis.c:46: error: expected ')' before 'o'
  4.