#include <stdio.h>
#include <limits.h>
int main() {
int numeros[5], maior = INT_MIN, menor = INT_MAX;
// Lê os 5 números do usuário
for (int i = 0; i < 5; i++) {
printf("Digite um número: ");
scanf("%d", &numeros[i]);
// Atualiza o maior e o menor valor
if (numeros[i] > maior) {
maior = numeros[i];
}
if (numeros[i] < menor) {
menor = numeros[i];
}
}
// Imprime o maior e o menor valor
printf("O maior número é %d\n", maior);
printf("O menor número é %d\n", menor);
return 0;
}
E ficou assim como está,está funcionando no codeblocks.
Apresento abaixo outra abordagem, sendo uma definição da mesma lógica, porém sem uso de ‘array’ e difere também por assumir a primeira leitura o referencial.
#include <stdio.h>
int main() {
int numero, maior, menor;
printf("Digite um número: ");
scanf("%d", &numero);
maior = menor = numero;
/* Nessa abordagem a primeira leitura e o referencial */
// Lê os 4 números do usuário
for (int i = 1; i < 5; i++) {
printf("Digite um número: ");
scanf("%d", &numero);
// Atualiza o maior e o menor valor
if (numero > maior) {
maior = numero;
}
if (numero < menor) {
menor = numero;
}
}
// Imprime o maior e o menor valor
printf("O maior número é %d\n", maior);
printf("O menor número é %d\n", menor);
return 0;
}
Aprenda a fazer testes de mesa, ou não vai conseguir avançar no aprendizado.
Neste exemplo, ao invés de if-else, use somente dois if.
Se você usar o if-else ele vai testar o maior numero ou o menor número.
Mas você não tem que testar um ou outro, tem que testar os dois.
if (uma condição) {
// Faz algo
}
if (outra condição) {
// Faz algo
}