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;
}
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;
}