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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Estructura de datos(pilas) en: 24 Mayo 2018, 18:29 pm
Buen día a todos, llevo días con esto he intentado varias cosas pero no me sale, podrían ayudarme?
El enunciado es el siguiente:
Tomando como base el programa desarrollado en clase,
a.   Modifique el código para que permita el ingreso de n cantidad de números.
b.   Luego recorra la pila y lea los números de dos en dos.
c.   Calcule una suma con los dos primeros números
d.   Calcule una multiplicación con los dos siguientes valores
e.   Luego reste y divida respectivamente.

iv.   Guarde los resultados de las operaciones en una nueva pila.
v.   Habilitar: Una opción que permita presentar en pantalla los datos tanto de la pila de ingreso como la de los resultados.

El paso a y el b ya lo tengo, el problema esta en hacer las operaciones de dos en dos(paso c,d,e), puede que sea un for e incluso con do while pero me salen resultados diferentes a la hora de querer utilizar for e ir recorriendo de dos en dos para poder operar.

De ante mano se les agradece.

Este es el codigo que tengo:

#include <iostream>
#include <cstdlib>

using namespace std;
int main(){
   int arreglo[100];
   int numero;  
   int tope = 0;
   int contAGREGAR;
   int contMOSTRAR;
   int contELIMINAR;
   int cantAGREGAR;
   int cantELIMINAR;
   do{
      
      
      system("clear");
      
            
   printf("\n\tPOR FAVOR ELIJA UNA DE LAS SIGUIENTES OPCIONES\n\n");
   printf("\t\tPILA\n\n");
   printf("\n\t1.INGRESAR UN DATO A LA PILA");
   printf("\n\t2.MOSTRAR DATO DE LA PILA");   
   printf("\n\t3.ELIMINAR DATO A LA PILA \n");   
   printf("\n\t4.SALIR DEL PROGRAMA \n");   
   
      scanf("%i",&numero);
      switch (numero) {
            
      case 1:{
         system("clear");
         printf("CUANTOS ELEMENTOS QUIERE AGREGAR A LA PILA ");
         scanf("%d", &cantAGREGAR);
         for (contAGREGAR = 1; contAGREGAR <= cantAGREGAR; contAGREGAR++) {
            printf("\t INTRODUZCA EL DATO DE LA PILA NUMERO %d :", contAGREGAR);
            scanf("%i", &arreglo[tope]);
            tope++;
         }
      }
      break;
      
      case 2:{
      
         system("clear");

         if (tope == 0){

            printf("\t LA PILA ESTA VACIA");
            break;
         }else {
            printf("\tDATOS DE LA PILA\n\n");
            for (contMOSTRAR = 0; contMOSTRAR<tope; contMOSTRAR++) {
               
               printf("\n\t%d ", arreglo[contMOSTRAR]);
            }
         }
      }

         break;
         
      case 3:
            {
            system("clear");
            
            if(tope == 0){
               printf("\n\t\t NO HAY PILA QUE RETIRAR");
               
               
            }else {
               printf("CUANTOS DATOS QUIERE QUITAR DE LA PILA \? ");
               scanf("%d", &cantELIMINAR);
               system("clear");
               for ( contELIMINAR = 0; contELIMINAR < cantELIMINAR; contELIMINAR++) {
                  tope--;
                  printf("El elemento %d fue eliminado", tope);
                  
                  
               }
            }
            }
            break;
                  
      case 4:
         {   
            printf("\tSALIENDO..\n");
         break;


         }}}while(numero<4);
}

Estaba haciendo esto aparte para darme una idea:

int arreglo[] = {1,2,3,4,5,6};
int suma, resta, multi;

   //suma
   for(int i = 0; i <= 1; i++){
      suma += arreglo;
      
   }
   cout << "Suma: " << suma;
   //resta
   for(int i = 2; i >= 3 ;i++){
      resta -= arreglo;
      
   }
   cout << endl << "Resta: " << resta;
    //multiplicacion
    for(int i = 5; i <= 4 ;i--){
      multi = multi + arreglo;
      cout << endl << "Multiplicacion: " << multi;
   }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines