Foros del Web » Programación para mayores de 30 ;) » C/C++ »

que alguien me ayude por favor a solucionar este problema

Estas en el tema de que alguien me ayude por favor a solucionar este problema en el foro de C/C++ en Foros del Web. me mandaron hacer un programa de listas donde debo insertar un valor al principio y al final de la lista sera que alguien me puede ...
  #1 (permalink)  
Antiguo 29/11/2010, 18:35
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta que alguien me ayude por favor a solucionar este problema

me mandaron hacer un programa de listas donde debo insertar un valor al principio y al final de la lista sera que alguien me puede ayudar hoy mismo en esto el programa tiene que ser c++
  #2 (permalink)  
Antiguo 29/11/2010, 18:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 14 años, 5 meses
Puntos: 15
Respuesta: que alguien me ayude por favor a solucionar este problema

No esperes que otra persona escriba el código por ti, no creo que sea la idea.
  #3 (permalink)  
Antiguo 29/11/2010, 18:41
 
Fecha de Ingreso: noviembre-2010
Ubicación: mexico
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: que alguien me ayude por favor a solucionar este problema

espero y esto te pueda servir
http://www.programacionfacil.com/estructura_datos_csharp:listas_enlazadas ... esta en C#
  #4 (permalink)  
Antiguo 30/11/2010, 05:34
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: que alguien me ayude por favor a solucionar este problema

bueno gracias por la ayuda el programa es este pero no me copila soy nuevo en esto y no entiendo muy bien programación espero que me ayude

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

#define T_NOM 101
#define T_EDAD 3

struct persona {
char nom[100];
char edad[3];
struct persona *siguiente;
};


#define LEE_CAD(c,n) { int i=0; \
c[i]=getchar();\
while((c[i]=='\n') || (c[i]=='\t')) c[i]=getchar();\
while ((c[i]!='\n') && (i < (n-1))){ \
i++;\
c[i]=getchar(); }\
c[i]='\0'; }
#include "estructura_de_datos.h"

int main(){
struct persona *lista=NULL;
struct persona *nodo;

int op;
void alta_inicio();
void alta_final();
void recorrer_lista();

do{
do{
printf("Elija una opción:\n");
printf("1--> Añadir al principio.\n");
printf("2--> Añadir al final.\n");
printf("3--> Recorrer la lista.\n");
printf("4--> Salir.\n");
scanf("%d",&op);
}while((op < 1) || (op > 4));
if(op != 4)
switch(op){
case 1: { alta_inicio(&lista);break;}
case 2: { alta_final(&lista);break;}
case 3: { recorrer_lista(&lista);break;}
}
}while(op != 4);
exit(0);
}

void alta_inicio(struct persona **lista){
struct persona *nuevo_nodo;
nuevo_nodo=(struct persona *)malloc(sizeof(struct persona));
if(nuevo_nodo != NULL){
nuevo_nodo->siguiente = *lista;
*lista = nuevo_nodo;
printf("Nombre: ");
LEE_CAD(nuevo_nodo->nom,100);
printf("Edad: ");
LEE_CAD(nuevo_nodo->edad,3);
}
}

void alta_final(struct persona **lista){
struct persona *nuevo_nodo;
struct persona *nodo_aux;

nuevo_nodo=(struct persona *)malloc(sizeof(struct persona));
if(nuevo_nodo != NULL){
nodo_aux = *lista;
while(nodo_aux->siguiente != NULL)
nodo_aux = nodo_aux->siguiente;
nodo_aux->siguiente=nuevo_nodo;
nuevo_nodo->siguiente=NULL;
LEE_CAD(nuevo_nodo->nom,100);
LEE_CAD(nuevo_nodo->edad,3);
}
else
printf("Error al tomar memoria del nuevo nodo.\n");
}

void recorrer_lista(struct persona **lista){
struct persona *nodo_aux;
nodo_aux = *lista;
while(nodo_aux != NULL){
printf("%s\n",nodo_aux->nom);
printf("%s\n",nodo_aux->edad);
nodo_aux = nodo_aux->siguiente;
}
}
  #5 (permalink)  
Antiguo 30/11/2010, 06:29
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: que alguien me ayude por favor a solucionar este problema

Dices que el programa no te compila, pero no indicas qué errores te da.

A primera vista, veo que has definido una función entera como una macro (la macro LEE_CAD). Debes tener en cuenta que las macros se expanden al compilar (el preprocesador las sustituye antes de pasar al compilador), puedes llevarte sorpresas muy desagradables ya que pueden aparecer errores muy difíciles de localizar aunque tu macro parezca estar bien. En tu caso tampoco está bien: Si pasas parámetros a la macro deben ir, cada uno, entre paréntesis, no hay tipos por ninguna parte, etc., con lo que vete a saber qué es lo que ve el compilador al final. Yo te recomiendo que la implementes como función, con su prototipo y sus parámetros convenientemente declarados. Deja las macros complicadas (como sería esta) para cuando "seas mayor".

De todos modos, conviene que indiques qué sistema operativo y compilador utilizas, y cuáles son los errores que te reporta. Esto ayudará a precisar mejor la respuesta.

Saludos,
  #6 (permalink)  
Antiguo 30/11/2010, 07:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Respuesta: que alguien me ayude por favor a solucionar este problema

oye estoy haciendo es programa con el mismo menu bueno parecido en lenguaje c++ se trata de lo mismo del otro incrtar al final de la lista y al principio sera voy bien??
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
typedef struct nodo
{
int dato;
struct nodo * siguiente;
}tipoNodo;

tipoNodo *nuevo_elemento();

void crear();
void insertar();
void insertar_inicio();
void insertar_final();
void presentar();
int main(){
*printf("Elija una opción:\n");
* * * * * * * *printf("1--> Añadir al inecio.\n");
* * * * * * * *printf("2--> Añadir al final.\n");
* * * * * * * *printf("3--> precentar la lista.\n");
* * * * * * * *printf("4--> Salir.\n");
* * * * * * * *scanf("%d",&op);
* * * * * * }while((op < 1) || (op > 4));
* * * * *if(op != 4) *
* * * * * * switch(op){
case:1
void crear();
  #7 (permalink)  
Antiguo 30/11/2010, 07:42
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Respuesta: que alguien me ayude por favor a solucionar este problema

disculpe usted no tienes un programa que sea semejante ql que yo necesito lo que pasa es que en realida lo necesito para hoy por es un proyecto y no he podido hacer ese programa

Etiquetas: favor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:12.