Alguém me ajuda a terminar meu programa

Corrigi o programa para funcionar no codeblocks:

#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.

2 curtidas

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
}