SrMasterS 0 Denunciar post Postado Abril 7, 2012 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
acs20 0 Denunciar post Postado Abril 7, 2012 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
SrMasterS 0 Denunciar post Postado Abril 7, 2012 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
acs20 0 Denunciar post Postado Abril 7, 2012 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
GBecker 51 Denunciar post Postado Abril 7, 2012 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
SrMasterS 0 Denunciar post Postado Abril 8, 2012 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
guidjos 65 Denunciar post Postado Abril 8, 2012 Senhores, por favor corrijam seus posts, envolvendo códigos em tags code e /code. Compartilhar este post Link para o post Compartilhar em outros sites