Ir ao conteúdo
  • Cadastre-se
Willians Keiichi

C++ problema em programar em c++

Recommended Posts

É para criar um programa que quando digitasse x=1  as variáveis A,B,C devem estar na ordem creosende,se digita-se x=2 as variáveis  A,B,C devem estar na ordem decrescente ,e se for x=3 o maior numero deve estar no meio.Mas quando eu digite as 3 variáveis A,B,C na condição  x=1 todas as outras condição são compilado juntos.Agradeço muito se alguém poder me ajudar .(eu ainda estou aprendendo c++,mas ainda tenho algumas noções no planejamento do programa ).

#include <iostream>

using namespace std;

int main() 
{
    double x,a,b,c;
    cout<<"digite o valor de x:";
    cin>>x;
    cout<<"digite o valor de a:";
    cin>>a;
     cout<<"digite o valor de b:";
    cin>>b;
    cout<<"digite o valor de c:";
    cin>>c;
    
    
    if(x=1){ //[ordem creasente]
    
         if(a<b<c){
            cout<<a<<","<<b<<","<<c;
         }
         if(a<c<b){
            cout<<a<<","<<c<<","<<b;
         }
         if(b<c<a){
            cout<<b<<","<<c<<","<<a;
         }
         if(b<a<c){
            cout<<b<<","<<a<<","<<c;
         }

         if(c<a<b){
            cout<<c<<","<<a<<","<<b;
         }
         if(c<b<a){
            cout<<c<<","<<b<<","<<a;
             
         }
        
    }
    
    if(x=2){//[ORDEM DECRESENTE]
    
         if(a>b>c){
            cout<<a<<","<<b<<","<<c;
         }
        if(a>c>b){
           cout<<a<<","<<c<<","<<b;
         }

        if(b>c>a){
           cout<<b<<","<<c<<","<<a;
        }
        if(b>a>c){
           cout<<a<<","<<b<<","<<c;
        }

        if(c>a>b){
           cout<<c<<","<<a<<","<<b;
        }
        if(c>b>a){
           cout<<a<<","<<b<<","<<c;
        }
           
           
    }
    if(x=3){//[O MAIOR NUMERO FICA NO MEIO]
    
        if(a>b>c){
           cout<<b<<","<<a<<","<<c;
        }
        if(a>c>b){
           cout<<c<<","<<a<<","<<b;
        }

        if(b>c>a){
           cout<<c<<","<<b<<","<<a;
        }
        if(b>a>c){
           cout<<a<<","<<b<<","<<c;
        }

        if(c>a>b){
           cout<<a<<","<<c<<","<<b;
        }
        if(c>b>a){
           cout<<b<<","<<c<<","<<a;
            
        }
    }
    else{
        cout<<"o valor de x nao eh nenhum da cima"<<endl;
    }
    
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Willians Keiichi     você está usando os operadores lógicos de forma errada , precisa compara uma variável  com a outra e não as três juntas de uma vez , então seria assim :

if(a<b && a<c){
    cout<<a<<",";
    if(b<c)cout<<b<<","<<c;
    else   cout<<c<<","<<b;
}

e também o sinal de comparação  são dois sinais de igualdades juntos " == "  e como você colocou apenas um sinal " = " ele faz x igual a 1 e tudo que está dentro desse if, depois faz x igual a 2 e tudo que está dentro de outro if e depois o mesmo com o 3  e assim  ele imprime vária respostas ,   então seu código com algumas modificações ficaria assim :

#include <iostream>
#include <conio.h>
using namespace std;
int main(){
    double x,a,b,c;
    cout<<"digite o valor de x: ( 1 ou 2 ou 3 )";
    cin>>x;
    cout<<"digite o valor de a: ";
    cin>>a;
    cout<<"digite o valor de b: ";
    cin>>b;
    cout<<"digite o valor de c: ";
    cin>>c;
    cout<<endl;
    if(x==1){ //[ordem creasente]
        cout<<"Imprimindo Em Ordem Crescente"<<endl;
        if(a<b && a<c){
            cout<<a<<",";
            if(b<c)cout<<b<<","<<c;
            else   cout<<c<<","<<b;
        }
        else
            if(b<a && b<c){
                cout<<b<<",";
                if(a<c)cout<<a<<","<<c;
                else   cout<<c<<","<<a;
            }
            else
                if(c<a&&c<b){
                    cout<<c<<",";
                    if(a<b)cout<<a<<","<<b;
                    else   cout<<b<<","<<a;
                }
    }
    else{
        if(x==2){//[ORDEM DECRESENTE]
            cout<<"Imprimindo Em Ordem Decrescente"<<endl;
            if(a>b && a>c){
                cout<<a<<",";
                if(b>c)cout<<b<<","<<c;
                else   cout<<c<<","<<b;
            }
            else
                if(b>a && b>c){
                    cout<<b<<",";
                    if(a>c)cout<<a<<","<<c;
                    else   cout<<c<<","<<a;
                }
                else
                    if(c>a && c>b){
                        cout<<c<<",";
                        if(a>b)cout<<a<<","<<b;
                        else   cout<<b<<","<<a;
                    }
        }
        else{
            if(x==3){//[O MAIOR NUMERO FICA NO MEIO]
                cout<<"Imprimindo O Maior No Meio"<<endl;
                if(a>b && a>c){
                    cout<<b<<","<<a<<","<<c;
                }
                else
                    if(b>a && b>c){
                        cout<<a<<","<<b<<","<<c;
                    }
                    else
                        if(c>a && c>b){
                            cout<<a<<","<<c<<","<<b;
                        }
            }
            else{
                cout<<"o valor de x nao eh 1 nem 2 nem 3"<<endl;
            }
        }
    }
    cout<<endl;
    getch();
    return 0;
}

 

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×