Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Chamit Jabes

#1
Cerrar ya logre arreglarlo :)
#2
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:

#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