Masterkyo007 Posted March 26, 2012 Report Share Posted March 26, 2012 estimados como creo una lista con numeros hasta que el usuario dia si quiere ingresar mas o no y a eso que muestre los numeros mayores al promedio y evitando que se repitan? lo que tengo echo es lo siguiente. include <conio.h> #include <stdio.h> #include <stdlib.h> typedef struct _nodo{ int dato; struct _nodo *siguiente; }tiponodo; typedef tiponodo *pnodo; typedef tiponodo *Lista; void insertar (Lista*lista, int v); void main(){ Lista l=NULL; pnodo aux; aux=l; int i,j,x=0; int arreglo[]=[i]; while(aux){ printf("ingrese numero : "); scanf("%d",%aux->dato); aux=aux_>siguiente; printf("desea ingresar otros numeros, si =1 no=2"); scanf("%d",&j); if (j==1) return 0; } void insertar(Lista *lista,int v){ pnodo nuevo, anterior; nuevo=(pnodo)malloc(sizeof(tiponodo)); nuevo->dato=v; if(!(*lista)||(*lista)->dato >v){ nuevo->siguiente=*lista; *lista=nuevo; } else{ anterior=*lista; while(anterior->siguiente && anterior->siguiente->dato<=v) anterior=anterior->siguiente; nuevo->siguiente=anterior->siguiente; anterior->siguiente=nuevo; } } Link to comment Share on other sites More sharing options...
AshWilliams Posted March 26, 2012 Report Share Posted March 26, 2012 Se Mueve a Aplicaciones de Escritorio. Saludos :krider: Link to comment Share on other sites More sharing options...
zafrada Posted April 3, 2012 Report Share Posted April 3, 2012 (edited) Mi pregunta es, hay que evitar ingresar elementos repetidos, o se pueden ingresar pero a la hora de calcular el promedio no se consideran? Yo las listas las implemento así, ojo que esta lista es simple, no doble como la tuya: #include <stdio.h> #include <stdlib.h> //declaramos la estructura typedef struct LISTA{ int d; struct LISTA *sig; }lista; //crear nuevo nodo lista *nuevonodo(int d){ lista *nuevo; nuevo=(lista*)malloc(sizeof(lista)); nuevo->d = d; nuevo->sig=NULL; return nuevo; } //insertar elemento void insertar(lista **primero, int d){ lista *nuevo=nuevonodo(d); if (!*primero) { *primero=nuevo; return; } nuevo->sig=*primero; *primero=nuevo; } Si quieres evitar que los elementos se repitan habría que modificar un poco el insertar para recorrer la lista antes con un auxiliar, y ver si ya existe el número. Luego para calcular el promedio, te recomiendo que con un for recorras la lista, y vayas sumando los elementos, y al mismo tiempo con un contador cuentas los elementos de la lista, luego simplemente realizas el cálculo. Te dejé mi código de lista simple porque viendo el tuyo está muy enredado y sin comentarios. Saludos. Edited April 3, 2012 by zafrada Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now