Ir para conteúdo
Fórum Script Brasil
  • 0

Linguagem C, duvida


vinimalheiros

Pergunta

Olá pessoal.

Bem, estou fazendo um exercício e travei numa questão. A questão pede para que seja encontrado os dois maiores valores entre 10 numeros digitados, e que esses numeros não se repitam. Alguém pode me ajudar, por favor?

abração.

Aqui está o codigo q eu tentei fazer:

#include <stdio.h>
#include <stdlib.h>

main() {
       
       int num[10], cont, maior1=0, maior2=0;
       
       for(cont=0; cont<10; cont++) {
                   printf("Entre com um valor: ", cont);
                   scanf("%d", num[cont]);
                   
                   if(num[cont]>maior1)
                   maior1=num[cont];
                   
                   
                   if(num[cont]>maior2)
                   maior2=num[cont];
                   
                   if(num[cont]==num[cont])
                   num[cont]!=num[cont];                   
                   
                   }
                   
                   
                   printf("\nOs dois maiores numeros são: %d e %d", maior1, maior2);
                   
                   system("pause>>NULL");
                   return 0;
                   
                   }

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Use a tag code para melhor entendimento.

Sua lógica está fraca, em algumas coisas tá legal em outras perde o sentido.

até aqui tá legal

...

if(num[cont]>maior1)

maior1=num[cont];

aí..

if(num[cont]>maior2)

maior2=num[cont];

if(num[cont]==num[cont])

num[cont]!=num[cont];

primeiro que no segundo if a variavel maior2 vai ter o mesmo valor que maior1.

no segundo if se num[cont] for igual(e claro que lele vai ser igual) a num[cont] depois você compara a diferença do próprio?

Outra coisa que vale ressaltar é um printf errado, alta o %d para mostrar o valor de cont e tambem se um usuário esperto digitar um numero negativo(ou só nº negativos)? o programa vai funcionar com muitos erro.

Vai a minha lógica.

Primeiro pede ao usuário um numero(num[0]), atribua ele a maior1.

Depois itere em um laço e peça outros e faça a comparação se num[cont] é maior que maior1, e se for atirbua o valor de maior1 a maior2, e o valor de num[cont] a maior1.

Link para o comentário
Compartilhar em outros sites

  • 0
Use a tag code para melhor entendimento.

Sua lógica está fraca, em algumas coisas tá legal em outras perde o sentido.

até aqui tá legal

...

if(num[cont]>maior1)

maior1=num[cont];

aí..

if(num[cont]>maior2)

maior2=num[cont];

if(num[cont]==num[cont])

num[cont]!=num[cont];

primeiro que no segundo if a variavel maior2 vai ter o mesmo valor que maior1.

no segundo if se num[cont] for igual(e claro que lele vai ser igual) a num[cont] depois você compara a diferença do próprio?

Outra coisa que vale ressaltar é um printf errado, alta o %d para mostrar o valor de cont e tambem se um usuário esperto digitar um numero negativo(ou só nº negativos)? o programa vai funcionar com muitos erro.

Vai a minha lógica.

Primeiro pede ao usuário um numero(num[0]), atribua ele a maior1.

Depois itere em um laço e peça outros e faça a comparação se num[cont] é maior que maior1, e se for atirbua o valor de maior1 a maior2, e o valor de num[cont] a maior1.

cara, ainda não to conseguindo =//

Link para o comentário
Compartilhar em outros sites

  • 0

O Dan Oliveira, explicou tudo certinho.

A primeira parte, é voce conseguir salvar apenas 1 numero, o maior digitado.

Depois voce passa para guardar os 2 maiores e assim vai.

enfim...

Que de mao beijada, esta ao o codigo abaixo.

Creditos do Dan Oliveira, eu so fiz foi fazer mesmo...

#include <stdio.h>
#include <stdlib.h>
main(){
       int numero, maior1=0, maior2=0, contagem=0;
       while(contagem<=10){
       printf("Digite um numero: ");
       scanf("%d", &numero);
       contagem++;
       
       if((maior1==0)&&(maior2==0)){
       maior1=numero;
       maior2=numero;
       }
       
       if(maior1<=numero){
       maior2=maior1;
       maior1=numero;}
       
       }
       
       printf("Maiores numeros digitados: %d e %d\n", maior1, maior2);
       system("pause");
       }

Editado por krovinskit
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...