No Imprime el las opciones del programa, La actividad consiste en programar 2 opciones, la A y la B.

Iniciado por Xenock, 23 Abril 2021, 22:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Xenock

La opciones que tengo que programar es A y B. La A tiene que imprimir en pantalla una escala del 100-500 con numeros pares. Y la B con impares


#include <iostream>
#include <stdlib.h>

using namespace std;

int main()

{
int num1,num2,suma1,suma2,contador1,contador2;
char a,b,c;

num1 = 100;
num2 = 101;
suma1 = contador1 = 0;
suma2 = contador2 = 0;

do{
cout<<"Seleccione la opcion"<<endl;
cout<<"1. Numeros Pares \n";
cout<<"2.  Numeros Impares \n";
cin>>a;

switch (a)
{
case 1:
cout<<"Seleciono la opcion 1: \n";
if(num1<=498){
for(num1;num1<500;num1+=2){
suma1 = suma1 + num1;
contador1 = contador1 + 1;
cout<<num1<<",";}

cout<<"Selecionaste Numeros Pares."<<suma1<<endl;
}
break;

case 2:
cout<<"Seleciono la opcion 2: \n";
if(num2<=499){

for(num2;num2<500;num2+=2){

suma2 = suma2 + num2;
contador2 = contador2 + 1;
cout<<num2<<",";}

cout<<"Selecionaste Numeros Impares."<<suma2<<endl;

}
break;
}
}while(num1<0||num1>500,num2<0||num2>500);





system("PAUSE");
return 0;
}





#include <iostream>
#include <stdlib.h>

using namespace std;

int main()

{
int num1,num2,suma1,contador1,r1,r2;
char a,b,c,opciones;

num1 = 100;
num2 = 101;
suma1 = contador1 = 0;


cout<<"Seleccione la opcion"<<endl;
cout<<"1.Numeros Pares \n";
cout<<"2.Numeros Impares \n";
cin>>opciones;

switch (opciones)
{
case 1:

if(num1<=498){

for(num1;num1<500;num1+=2){
suma1 = suma1 + num1;
contador1 = contador1 + 1;
cout<<num1<<",";

}

}
break;

case 2:

if(num2<=499){

for(num2;num2<500;num2+=2){

suma1 = suma1 + num2;
contador1 = contador1 + 1;
cout<<num2<<",";

}


}
break;
}

cout<<"La opcion que tomaste fue: "<<r1<<endl;
cout<<"Y el total hasta 500 de forma pas o impar es: "<<r2<<endl;

system("PAUSE");
return 0;
}


Aca esta lo arregle un poco pero no me sigue imprimiendo




Esto es lo definitivo me ayudaria mucho si me pueden decir como hago que se imprima ne pantalla la escala de numeros pares o impares

#include <iostream>
#include <stdlib.h>

using namespace std;

int main()

{
int num,r,par,meta,final;
char opciones;

meta=500;

cout<<"Seleccione la opcion"<<endl;
cout<<"1.Numeros Pares \n";
cout<<"2.Numeros Impares \n";
cin>>opciones;

switch (opciones)
{
case 1:
if(num<=498){

for(int num=100;num<=meta;num+=2){
num = num + 2;
cout<<num<<".";
}
}
break;

case 2:
if(num<=499){

for(int num=101;num<=meta;num+=2){
num = num + 2;
cout<<num<<".";
}
}
break;
}



system("PAUSE");
return 0;
}





Luego de miles de intentos y errores me salio por fin como queria el programa
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{

cout<<"Opcion a o b: ";
int num,meta = 500;
char opcion;
cin>>opcion;

switch(opcion)
{
case 'a': cout<<"Usted a Seleccionado la opcion de numeros pares: \n";
if(num<=498){

for(int num=100;num<=meta;num+=2){
num = num + 0;
cout<<num<<".";
}
}

break;
case 'b': cout<<"Usted a Seleccionado la opcion de numeros impares: \n";
if(num<=498){

for(int num=101;num<=meta;num+=2){
num = num + 0;
cout<<num<<".";
}
}
break;

default: cout<<"Usted a ingresado una opcion incorrecta \n";


}
system("PAUSE");
return 0;
}

WHK

Hola, tu código es redundante, tienes bloques muy similares para distintas operaciones, mejor encierralas en una sola función, por ejemplo, una que diga que si el valor es par o impar y luego haces un for de 100 a 500 y según el caso vas viendo si imrpime el resultado o no según la opción elegida. a demás, vas a tener problemas de escalabilidad, si despues te piden ingresar un tercer tipo de resultado tendrás que crear mas condicionales con otros tipos de for, por ejemplo, para saber si es primo o no, asi que siempre es mejor hacer una validación, por ejemplo bool isPar(int val){ return val % 2 == 0; }

Recuerda que en una tarea no siempre van a medir si la función cumplió el resultado o no, sino también que esté bien escrito con sus buenas prácticas.

Saludos.

Serapis

Los bucles for de tu versión penúltima te han fallado, porque tienes un error semántivo, que mantienes en la versión final.

Citar
                       for(int num=100;num<=meta;num+=2){
               num = num + 2;
               cout<<num<<".";
            }         
         ...
            for(int num=101;num<=meta;num+=2){
               num = num + 2;
               cout<<num<<".";
            }
Las líneas marcadas en rojo, sobran, porque los bucles 'for' se marca su incremento o decremento en su propia declaración (resalte en azul).


En tu versión final todavía lo mantienes... solo has cambiado el valor de +2 a +0. Fabuloso.
Citar
              for(int num=100;num<=meta;num+=2){
               num = num + 0;
               cout<<num<<".";
            }
                         ...
            for(int num=101;num<=meta;num+=2){
               num = num + 0;
               cout<<num<<".";
            }
Si mantienes esas líneas en rojo, en tu código es una declaración explícita de que no terminas de entiender como funciona un bucle for... y que te has limitado a cambiar cosas 'a ver... si así funciona...'