Bueno chicos ocurre que al momento de querer mostrar la lista, el unico dato correcto es el ultimo int del struct de datos (int horac)
Quisiera saber que estoy haciendo mal. De antemano muchas gracias.
CODIGO:
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex
Quisiera saber que estoy haciendo mal. De antemano muchas gracias.
CODIGO:
Código (c) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//Se tiene una lista simplemente enalzada que representa los canales de televisio de un cable operador. Se maneja el nombre de cada
//canal, el tipo de canal, el n° asignado y la cantidad de horas en comerciales que permite. Se solicita:
//A) Declare los struct a ser utilizados
//B) Determine el promedio de comerciales que emiten los canales de television
//C) Agregar un nuevo Canal
//D) Eliminar el o los canales que emiten mayor cantidad de horas en comerciales, debe mostrar por pantalla el detalle de los canales eliminados
struct nodoCanales
{
struct DatosCanal *canal;
struct nodoCanales *sig;
};
struct DatosCanal
{
char nombre;
char tipo
int numero;
int horac;
};
struct nodoCanales *crear();
void enlazarCanal(struct nodoCanales **, struct nodoCanales *);
void mostrarCanal(struct nodoCanales *);
int main()
{
int i=0;
struct nodoCanales *lista = NULL;
struct nodoCanales *aux = NULL;
for(i=0;i<1;i++)
{
enlazarCanal(&lista,crear());
}
aux=lista;
while(aux)
{
mostrarCanal(aux);
aux=aux->sig;
}
return 0;
}
struct nodoCanales *crear()
{
char buffer[50];
int size=0;
struct nodoCanales *nuevo;
nuevo=(struct nodoCanales *)malloc(sizeof(struct nodoCanales));
printf("Ingrese el nombre del canal: \n");
scanf(" %[^\n]",buffer);
size=strlen(buffer);
nuevo->canal->nombre=(char*)malloc(size*sizeof(char));
strcpy(nuevo->canal->nombre,buffer);
printf("Ingrese el tipo de canal: \n");
scanf(" %[^\n]",buffer);
size=strlen(buffer);
nuevo->canal->tipo=(char*)malloc(size*sizeof(char));
strcpy(nuevo->canal->tipo,buffer);
printf("Ingrese el numero del canal: \n");
scanf("%d",&nuevo->canal->numero);
printf("Ingrese la cantidad de horas en comerciales del canal: \n");
scanf("%d",&nuevo->canal->horac);
nuevo->sig=NULL;
return nuevo;
}
void enlazarCanal(struct nodoCanales **head, struct nodoCanales *nuevo)
{
struct nodoCanales *rec = *head;
if(!(*head))
{
*head = nuevo;
}
else
{
while(rec)
{
if(!(rec->sig))
{
rec->sig = nuevo;
rec = nuevo;
}
rec = rec->sig;
}
}
}
void mostrarCanal(struct nodoCanales *nodo)
{
printf("%c \n",nodo->canal->nombre);
printf("%c \n",nodo->canal->tipo);
printf("%d \n",nodo->canal->numero);
printf("%d \n",nodo->canal->horac);
}
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex