programa c++ help needed

dmelo

Power Member
pois é pessoal estou aki cm um problema, sou muito noob nisto e queria ajuda.....l0ol......o programa é simples, pedir 3 numeros ao utilizador, e dp ordenar de forma crescente ou decrescente conforme a vontade do utilizador......a minha duvida é ao utilizar o if dentro do switch......n consigo por a funcionar.......LUZZZZZZZZZZZZZZZ quero uma luZZZZZZZ.....l0ol

#include <iostream>

using namespace std;
int main()
{ int num1,num2,num3;
int num;

cout<<"introduza num1:\n";
cin>>num1;
cout<<"introduza num2:\n";
cin>>num2;
cout<<"introduza num3:\n";
cin>>num3;

cout<<"\nescolha uma das opcoes\n\n";
cout<<" 1.crescente\n";
cout<<" 2.decrescente\n";
cin>>num;


switch(num){
case 1:
if(num1>num2&&num2>num3)
{ cout<<"ordem crescente:"<<num1;}

break;

case 2:


break;

default:
cout<<"tem de escolher uma das opcoes\n";
}


return 0;
}
 
Última edição:
Tens mesmo de fazer isso com ifs ou podes usar a função max()? Se puderes o código torna-se mais simples.

O que tens de fazer é verificar qual deles é o menor e escrever esse. Depois tens de encontrar o menor dos outros dois (aqui isto torna-se chato porque tens casos diferentes dependente de qual deles foi o primeiro) e no fim escreves o outro.
 
Aqui está (uma forma muito básica de o fazer):

Código:
#include <iostream>

using namespace std;

int main()
{
int num,num1,num2,num3,max=0,max2=0,pos,pos2,min=32600,min2=32600;
int v[3];

cout<<"introduza num1: ";
cin>>num1;
cout<<"introduza num2: ";
cin>>num2;
cout<<"introduza num3: ";
cin>>num3;

v[0]=num1;
v[1]=num2;
v[2]=num3;


cout<<"\nescolha uma das opcoes\n\n";
cout<<" 1.crescente\n";
cout<<" 2.decrescente\n\n";
cin>>num;
cout<<endl<<endl;


switch(num){
case 1:
  
  cout<<"Ordem crescente: ";
  for(int i=0;i<3;i++)
  {
    if(v[i]>max)
    {
        max=v[i];
        pos=i;
    }
  }
  for(int i=0;i<3;i++)
  {
    if(i!=pos)
        if(v[i]>max2)
        {
          max2=v[i];
          pos2=i;
        }
  }
  for(int i=0;i<3;i++)
      if(i!=pos && i!=pos2)
          cout<<v[i]<<" ";
  cout<<v[pos2]<<" "<<v[pos]<<endl<<endl;

 break;

case 2:

  cout<<"Ordem decrescente: ";
  for(int i=0;i<3;i++)
  {
    if(v[i]<min)
    {
        min=v[i];
        pos=i;
    }
  }
  for(int i=0;i<3;i++)
  {
    if(i!=pos)
        if(v[i]<min2)
        {
          min2=v[i];
          pos2=i;
        }
  }
  for(int i=0;i<3;i++)
      if(i!=pos && i!=pos2)
          cout<<v[i]<<" ";
  cout<<v[pos2]<<" "<<v[pos]<<endl<<endl;

break;

default:
cout<<"Escolha uma das opcoes\n";
}

return 0;
}
 
Última edição:
obrigadão

obrigado a todos pelas respostas....... bem não tá assim tão básico....l0ol

já consegui recorrendo aos if´s em cadeia lol.......6 condições, até n é muito.....o k vale é k é só para 3 numeros......
>>>já n me lembro é como se faz para correr o programa de novo.......tipo perguntar ao utilizador se deseja introduzir novos numeros e voltar a rodar o prog....isso acho k tb é basico mas n me lembro....!!!!!!!!
 
obrigado a todos pelas respostas....... bem não tá assim tão básico....l0ol

já consegui recorrendo aos if´s em cadeia lol.......6 condições, até n é muito.....o k vale é k é só para 3 numeros......
>>>já n me lembro é como se faz para correr o programa de novo.......tipo perguntar ao utilizador se deseja introduzir novos numeros e voltar a rodar o prog....isso acho k tb é basico mas n me lembro....!!!!!!!!
Compilas e corres.
 
obrigado a todos pelas respostas....... bem não tá assim tão básico....l0ol

já consegui recorrendo aos if´s em cadeia lol.......6 condições, até n é muito.....o k vale é k é só para 3 numeros......
>>>já n me lembro é como se faz para correr o programa de novo.......tipo perguntar ao utilizador se deseja introduzir novos numeros e voltar a rodar o prog....isso acho k tb é basico mas n me lembro....!!!!!!!!

Basta meteres um ciclo do genero:
Código:
int op=1;

do{

//...o teu codigo

cout<<"Deseja voltar a correr o programa? 1-Sim 0-Não"<<endl;
cin>>op;

if(op!=0)
 //inicializas as variaveis contadoras

if(op==0)
 cout<<"Programa a terminar"<<endl;

}while(op!=0);
 
Back
Topo