Boa tarde,
Primeiramente agradeço muito pelo material e informações que encontro neste site. Estão sendo muito importantes para meu curso de engenharia de controle e automação. Então, estudando alguns exercícios, encontrei uma divergência em uma resolução. O exercício é o seguinte :
Lista de laço FOR em c:
6. Escreva um programa em C que solicita 10 números ao usuário, através de um laço while, e ao final mostre os dois maiores números digitados pelo usuário.
O trecho :
if(maior < segundo_maior)
{
count = maior;
maior = segundo_maior;
segundo_maior = maior;
}
Percebi que o count não era necessário, pois ele recebe um valor que não é utilizado, além disso, se na lista dos 10 numeros, os dois primeiros numeros sao os maiores, senso o segundo maior que o primeiro, por exemplo:
1 - 30
2 - 50
3 - 1
4 - 3
5 - 4
6 - 5
7 - 12
8 - 10
9 - 13
10 - 15
o resultado sera: Maior numero: 50
Segundo maior numero: 50;
Devido a este trecho do código.
O meu código completo está assim:
#include <stdio.h>
int main()
{
int n,numero, maior1 = 0, maior2 = 0;
printf("\tMaior numero entre 10\n\n");
for(n = 1; n<=10; n++ ){
printf("Numero %d: \n", n);
scanf("%d", &numero);
if(numero>maior1){
maior1 = numero;
}
if(numero>maior2 && numero<maior1){
maior2 = numero;
}
}
printf("\nOs maiores numeros sao %d e %d ", maior1, maior2);
}
Novamente, agradeço muito pelo conteúdo do site.
Primeiramente agradeço muito pelo material e informações que encontro neste site. Estão sendo muito importantes para meu curso de engenharia de controle e automação. Então, estudando alguns exercícios, encontrei uma divergência em uma resolução. O exercício é o seguinte :
Lista de laço FOR em c:
6. Escreva um programa em C que solicita 10 números ao usuário, através de um laço while, e ao final mostre os dois maiores números digitados pelo usuário.
O trecho :
if(maior < segundo_maior)
{
count = maior;
maior = segundo_maior;
segundo_maior = maior;
}
Percebi que o count não era necessário, pois ele recebe um valor que não é utilizado, além disso, se na lista dos 10 numeros, os dois primeiros numeros sao os maiores, senso o segundo maior que o primeiro, por exemplo:
1 - 30
2 - 50
3 - 1
4 - 3
5 - 4
6 - 5
7 - 12
8 - 10
9 - 13
10 - 15
o resultado sera: Maior numero: 50
Segundo maior numero: 50;
Devido a este trecho do código.
O meu código completo está assim:
#include <stdio.h>
int main()
{
int n,numero, maior1 = 0, maior2 = 0;
printf("\tMaior numero entre 10\n\n");
for(n = 1; n<=10; n++ ){
printf("Numero %d: \n", n);
scanf("%d", &numero);
if(numero>maior1){
maior1 = numero;
}
if(numero>maior2 && numero<maior1){
maior2 = numero;
}
}
printf("\nOs maiores numeros sao %d e %d ", maior1, maior2);
}
Novamente, agradeço muito pelo conteúdo do site.