elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda para programacion en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para programacion en c  (Leído 1,687 veces)
nikko621

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda para programacion en c
« en: 16 Septiembre 2019, 14:40 pm »

Realice un programa en donde pueda realizar un menú que permita
a. insertar elementos a una lista enlazada simple
b. borrar elementos a una lista enlazada simple
c. borrar completamente la lista enlazada simple
d. mostrar los elementos de una lista enlazada simple
e. Calcular el promedio de los valores que se le insertaron a la lista enlazada simple
f. Que indique el valor menor y mayor de la lista enlazada simple


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda para programacion en c
« Respuesta #1 en: 16 Septiembre 2019, 14:53 pm »

Muy bien, ya tenemos el enunciado del ejercicio pero se te ha olvidado poner dónde está tu duda... :silbar:
Si en realidad el asunto de este tema no era "ayuda para programacion en c" y lo que querías poner era "Alguien que me haga la tarea" no te va a funcionar. En el foro ayudamos a hacer ejercicios tanto guiando sobre un problema concreto o localizando los errores que pueda tener un código, pero desde luego que nadie va a hacerte el ejercicio y te lo va a dar hecho.

Lo siento por tomármelo con humor pero son muchos los que se crean una cuenta y su primera aportación en el foro (y muchas veces, la última) es el enunciado de un ejercicio hecho. Si quieres ayuda, coloca tu código usando las etiquetas de Código GeSHi para que lo veamos o concreta qué ayuda necesitas para poder empezar. Si no quieres eso y prefieres esperar a alguien que te lo dé hecho... Suerte, la vas a necesitar.  :-X


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.056



Ver Perfil
Re: Ayuda para programacion en c
« Respuesta #2 en: 16 Septiembre 2019, 15:08 pm »

Saludos,

- Cierto, pero como guía puedes ver este par de vídeos para que te quede claro eso de Listas Enlazadas:

https://youtu.be/WxoGvBzWuGs

https://youtu.be/NPmwuR4VbKk

- También puedes guiarte de ese ebook gratuito en español:
Fundamentos de programación en C, por Nacho Cabanes
http://www.nachocabanes.com/fich/descargar.php?nombre=cc095.pdf

- Ya luego lo intentar hacer y si tienes dudas puntuales las indicas en el foro.
En línea

nikko621

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda para programacion en c
« Respuesta #3 en: 16 Septiembre 2019, 16:12 pm »

se me habia pasado poner el codigo no lo estaba poniendo para que me lo hicieran ya resolvi mi duda muchas gracias..

#include <stdlib.h>
#include <stdio.h>
 int opcion=0,nvalor=0,borrar=0,seguir=0,seguir2=0,acum=0,i=0,j=0;
typedef struct _nodo
{
   int valor;
   struct _nodo *siguiente;
}
tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Lista;


void Insertar(Lista *l, int v);
void Borrar(Lista *l, int v);
int ListaVacia(Lista l);
void BorrarLista(Lista *);
void MostrarLista(Lista l);
void PromedioLista(Lista I);

int main()
{
   Lista lista = NULL;
   pNodo p;
   do
   {
      printf("\n   1)Insertar elementos. 2)Mostrar elementos. 3)Borrar elementos . \n4) Borrar toda la lista. 5)Promedio \n");scanf("%d",&opcion);
      if(opcion==1)
      {
         do
         {
            printf("\n Introduzca el valor de la lista:  ");scanf("%d",&nvalor);
            Insertar(&lista, nvalor);
            printf("\n desea introducir otro valor  en la lista: (1) Si (2) No:  ");scanf("%d",&seguir);
         }
         while(seguir==1);
      }
      else
      {
         if(opcion==2)
         {
            printf("\n Mostrar la lista\n");
            MostrarLista(lista);
         }
         else
         {
            if(opcion==3)
            {
               do
               {
                  printf("\n Valor de la lista a borrar:  ");scanf("%d",&borrar);
                  Borrar(&lista, borrar);
                  MostrarLista(lista);
                  printf("\n Desea borrar otro elemento de la lista : (1) Si (2) No:  ");scanf("%d",&seguir);
               }
               while(seguir==1);
            }
            else
            {
               if(opcion==4)
               {
                  printf("\n Borrar toda la Lista :");
                  BorrarLista(&lista);
                  MostrarLista(lista);
               }
            else
            {   
               if (opcion ==5)
               {
                  printf ("\nPromedio\n");
                  PromedioLista(lista);
               }
            }
         }
   }
}
      printf("\n Desea realizar otra operacion: (1) Si  (2) No  ");scanf("%d", &seguir2);
      
   }while(seguir2==1);
   
   /*Insertar(&lista, 20);
   Insertar(&lista, 10);
   Insertar(&lista, 40);
   Insertar(&lista, 30);*/
   /*MostrarLista(lista);*/
   /*Borrar(&lista, 10);
   Borrar(&lista, 15);
   Borrar(&lista, 45);
   Borrar(&lista, 30);
   Borrar(&lista, 40);
   MostrarLista(lista);*/
   /*BorrarLista(&lista);
   getchar();*/
   return 0;
}
void Insertar(Lista *lista, int v)
{
   pNodo nuevo, anterior;

   nuevo = (pNodo)malloc (sizeof(tipoNodo));
   nuevo->valor = v;
 
   if(ListaVacia(*lista) || (*lista)->valor > v)
   {
 
      nuevo->siguiente = *lista;
      *lista = nuevo;
        acum= acum+v;
   }
   else
   {
      anterior = *lista;
      while(anterior->siguiente && anterior->siguiente->valor <= v)
          anterior = anterior->siguiente;
      nuevo->siguiente = anterior->siguiente;
      anterior->siguiente = nuevo;
   }
      i=i+acum;
      j++;

}

void Borrar(Lista *lista, int v)
{
   pNodo anterior, nodo;
   nodo = *lista;
   anterior = NULL;
   while(nodo && nodo->valor < v)
   {
       anterior = nodo;
       nodo = nodo->siguiente;
   }
   if(!nodo || nodo->valor != v) return;
   else {
       if(!anterior)
          *lista = nodo->siguiente;
       else
          anterior->siguiente = nodo->siguiente;
       free(nodo);
   }
}

int ListaVacia(Lista lista)
{
   return (lista == NULL);
}

void BorrarLista(Lista *lista)
{
   pNodo nodo;
   while(*lista) {
       nodo = *lista;
       *lista = nodo->siguiente;
       free(nodo);
   }
}

void MostrarLista(Lista lista)
{
   pNodo nodo = lista;
   if(ListaVacia(lista)) printf("   Lista vacía\n");
   else
   {
       while(nodo)
       {
          printf("%d -> ", nodo->valor);
          nodo = nodo->siguiente;
     }
     printf("\n");
   }
}

void PromedioLista (Lista lista)
{
   float prom=0.0;
   pNodo nodo = lista;
      if(ListaVacia(lista)) printf("   Lista vacía\n");
      else
      {
         prom = (acum/j);
      }
      printf ("\nPROMEDIO:\n %.2f\n", prom);
      }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con programacion para android.
Dudas Generales
Diaf96 0 1,944 Último mensaje 12 Agosto 2013, 17:01 pm
por Diaf96
ayuda programacion para crear app para android
Programación General
nudo1nudo 0 1,823 Último mensaje 12 Junio 2014, 02:42 am
por nudo1nudo
Ayuda en programación para ciegos
Scripting
AlexZorro 2 2,003 Último mensaje 11 Julio 2014, 05:37 am
por AlexZorro
Ayuda programación para principiantes
Programación Visual Basic
Deadpool22525 3 2,306 Último mensaje 18 Octubre 2014, 21:53 pm
por XresH
[Ayuda] Programación para videojuegos
Programación C/C++
Kcluuqczeas 3 2,297 Último mensaje 23 Noviembre 2014, 21:09 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines