Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SrMasterS

Logica

Recommended Posts

Caraka!! naum consigo nem ferrando resolver isso...

 

Alguém pode resolve pra mim explicando a Logica ?

 

:thumbsup:

 

Receber por digitação 4 números inteiros. Testar se existe algum numero repetido, informando qual é o numero repetido e em qual das vezes ele foi digitado. Caso todos sejam diferentes informar uma mensagem referente.

 

A base mais ou menos que eu to indo é essa.

 

 

#include<iostream.h>

#include<stdlib.h>

#include<math.h>

float n1, n2, n3, n4;

int main ()

{

cout<<"\n Digite O Primeiro Numero ";

cin>>n1;

cout<<"\n Digite O Segundo Numero ";

cin>>n2;

cout<<"\n Digite O Terceiro Numero ";

cin>>n3;

cout<<"\n Digite O Quarto Numero ";

cin>>n4;

if (n2 == n1)

cout<<"\n\n O Segundo Numero e Igual o Primeiro ";

if ( n3 == n1 )

cout<<"\n\n O Terceiro Numero e Igual o Primeiro ";

if ( n4 == n1 )

cout<<"\n\n O Quarto Numero e Igual o Primeiro ";

if ( n2 == n3 )

cout<<"\n\n O Terceiro Numero e Igual o Segundo ";

if ( n2 == n4 )

cout<<"\n\n O Quarto Numero e Igual o Segundo ";

if ( n3 == n4 )

cout<<"\n\n O Quarto Numero e Igual o Terceiro ";

else if

cout<<"\n Todos os Numeros Sao Diferentes ";

cout<<"\n\n ";

system ("pause");

}

 

Só que desse modo mesmo se os numeros forem igual ele dá a mensagem que são diferente então nao rolo :ermm:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Po velho eu faria uma coisa mais com vetor e loops utilizando for, seria algo desse tipo aqui:

 

for(i=0; i<4; i++)

{

 

Po velho eu faria uma coisa mais com vetor e loops utilizando for, seria algo desse tipo aqui:

 

x=0;

for(i=0; i<4; i++)

{

cont=0;

for(j=i+1; j<4; j++)

{

if(vet==vet[j];

{

cont++;

x=cont;

}

}

printf("%i\n%i", vet, cont); /* imprimi o número que foi repetido e quantas vezes ele foi repetido.

}

if(x==0)

{

printf("Todos os números são diferentes");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Huahauahua valeu pela ajuda colega mais e se eu fazer algo desse tipo a professora não vai considera pq ela não ensino ainda esse método. Ela que que a gente treine o primeiro método citado no primeiro post meu '-'

 

 

:thumbsup:

 

Se Alguém Souber aonde estou errando e poder me ajuda fico agradecido. :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, eu lhe mandei uma outra forma de fazer, achei que ja podesse fazer assim, mas beleza, o que tu pode fazer é o seguinte continuar desse jeito que eu acho que você ta errando alguma coisa de sintaxe de linguagem e não de logica eu acho. Mas experimenta o seguinte, ao inves de colocar se não se você tira e coloca se cont não igual a 0 então ele entra o if e imprimir que todos os numeros são diferentes e ai dentro de cada if você coloca o um cont++, porem não esquece de inicializalo com 0.

 

Ou então uma outra sugestão é uma coisa bem bruta você coloca no lugar do se não se você coloca se n1 diferente de n2 e n1 diferente de n3 e assim ate se esgotarem as possibilidades ele entra no if e imprimi que todos os numeros são diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SrMasterS,

 

Vamos pensar um pouco. Você já deve saber como utilizar um if, e preste atenção no ultimo if. Ele está sem a expressão de condição, este erro deve ser acusado pelo compilador.

 

Agora o porque de sempre aparecer que são diferentes é a seguinte:

Vamos simular a sequencia de execução do programa.

 

1) Digitar o 4 valores:

num1 = 1
num2 = 1
num3 = 3
num4 = 4

 

2) Teste das condições:

if (n2 == n1)

= TRUE

Opa, primeiro e segundo numero são iguais. Executa a próxima instrução.

 

if ( n3 == n1 )

= FALSE

Os dois números são diferentes. Pula a próxima instrução.

 

if ( n4 == n1 )

= FALSE

Os dois números são diferentes. Pula a próxima instrução.

 

if ( n2 == n3 )

= FALSE

Os dois números são diferentes. Pula a próxima instrução.

 

if ( n2 == n4 )

= FALSE

Os dois números são diferentes. Pula a próxima instrução.

 

if ( n3 == n4 )

= FALSE

Os dois números são diferentes. Pula a próxima instrução.

 

Perceba que o else, é o "senão" do último if. Ou seja, a menos que a condição do último if seja verdadeira, ele sempre vai executar a instrução após o else.

 

Entendeu? Vai ser executado tudo sequencialmente.Um após o outro, inclusive o cout diz que todos os números são iguais.

 

Acredito que você tenha tentado utilizar "if's" aninhados, mas para isso precisaria utilizar as chaves({}). Pois, if sem as chaves, é condicional apenas para a linha seguinte.

 

if aninhado:


if (CONDIÇÃO) {
      INSTRUÇÃO
   }else {
       if (CONDIÇÃO){
           INSTRUÇÃO
       }else {
           if (CONDIÇÃO){
               INSTRUÇÃO
           }else {
               if (CONDIÇÃO) {
                   INSTRUÇÃO
               }else {
                   if (CONDIÇÃO) {
                      INSTRUÇÃO
                   }else {
                       if (CONDIÇÃO) {
                           INSTRUÇÃO
                       }else {
                          INSTRUÇÃO
                       }
                   }
               }
           }
       }
   }

 

if sem chaves:


if(CONDIÇÃO)
    INSTRUÇÃO1
INSTRUÇÃO2

Aqui ele vai executar a INSTRUÇÃO1, caso a condição do if for verdadeira.

E sempre vai executar a INSTRUÇÃO2.

 


if(CONDIÇÃO)
    INSTRUÇÃO1
else
    INSTRUÇÃO2

Aqui se a condição do if for verdadeira, executa INSTRUÇÃO1.

Senão executa INSTRUÇÃO2.

 

Ah! Você não precisa da math.h, esta incluindo coisas desnecessárias.

 

Espero ter ajudado, FLW! :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado GBecker,

 

Dessa maneira aki ...

 

 

#include<iostream.h>

#include<stdlib.h>

float n1, n2, n3, n4;

int main ()

{

cout<<"\n Digite O Primeiro Numero ";

cin>>n1;

cout<<"\n Digite O Segundo Numero ";

cin>>n2;

cout<<"\n Digite O Terceiro Numero ";

cin>>n3;

cout<<"\n Digite O Quarto Numero ";

cin>>n4;

if ( n2 == n1 ) {

cout<<"\n\n O Segundo Numero e Igual o Primeiro " ;}

else if ( n3 == n1 ){

cout<<"\n\n O Terceiro Numero e Igual o Primeiro " ;}

else if ( n4 == n1 ){

cout<<"\n\n O Quarto Numero e Igual o Primeiro " ;}

else if ( n2 == n3 ){

cout<<"\n\n O Terceiro Numero e Igual o Segundo " ;}

else if ( n2 == n4 ){

cout<<"\n\n O Quarto Numero e Igual o Segundo " ;}

else if ( n3 == n4 ){

cout<<"\n\n O Quarto Numero e Igual o Terceiro " ;}

else {

cout<<"\n Todos os Numeros Sao Diferentes ";}

cout<<"\n\n ";

system ("pause");

}

 

 

ela faz certin e tals mais se o numero 1 e igual o segundo e o terceiro ele só da a mensagem que o primeiro e igual o segundo e não informa que ele tbm e igual o terceiro, como eu posso resolver isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.