Achar o valor mínimo em um array. Escreva uma função recursiva recursiveMinimum que apanhe um array de inteiros e o tamanho do array como argumentos e retorne o menor elemento do array. A função deverá encerrar o processamento e retornar quando receber um array de um elemento.

Passo 1

Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.

Vamos escrever um programa que contenha uma função que seja capaz de retornar o menor valor inteiro de um array. Para isso vamos criar a função recursiveMinimum recursiva que irá percorrer todos os valores do array verificando sempre o atual elemento com o anterior e retornando o menor elemento encontrado.

Definindo a função:

/* função para encontrar recursivamente o elemento mínimo do array */

int recursiveMinimum( int array[], int low, int high )

{

static int smallest = MAXRANGE;

/* maior valor possível */

/* se o primeiro elemento do array for o menor até agora,

defina o menor igual a esse elemento */

if ( array[ low ]

smallest = array[ low ];

} /* end if */

/* se apenas um elemento no array, retorna o menor */

if ( low == high ) {

return smallest;

} /* end if */

else {

/* chama recursivamente Minimum com novo subarray */

return recursiveMinimum( array, low + 1, high );

} /* end else */

}

Passo 2

Dentro da função principal main() vamos utilizar srand( time( NULL ) ); que será responsável por gerar número aleatórios , em seguida vamos adicionar os números aleatórios dentro do array e passar como parâmetro para a função recursiveMinimum.

#include

#include

#include

#define SIZE 10

#define MAXRANGE 1000

/* protótipo de função */

int recursiveMinimum( int array[], int low, int high );

int main()

{

int array[ SIZE ];

/* array a ser pesquisado */

int loop;

/* contador de loops */

int smallest;

/* menor elemento */

srand( time( NULL ) );

/* inicializa elementos do array para números aleatórios */

for ( loop = 0; loop

array[ loop ] = 1 + rand() % MAXRANGE;

} /* end for */

printf("Os membros do array são:\n");

/* exibe a matriz */

for ( loop = 0; loop

printf( " %d ", array[ loop ] );

} /* end for */

/* localiza e exibe o menor elemento do array */

printf( "\n" );

smallest = recursiveMinimum( array, 0, SIZE - 1 );

printf( "\nO menor elemento é: %d\n", smallest );

return 0;

} /* end main */

Passo 3

Feito isso, é só compilar o nosso programa que teremos como saída:

E assim nosso programa está finalizado galera. Até o próximo exercício.

Resposta

#include

#include

#include

#define SIZE 10

#define MAXRANGE 1000

/* protótipo de função */

int recursiveMinimum( int array[], int low, int high );

int main()

{

int array[ SIZE ];

/* array a ser pesquisado */

int loop;

/* contador de loops */

int smallest;

/* menor elemento */

srand( time( NULL ) );

/* inicializa elementos do array para números aleatórios */

for ( loop = 0; loop

array[ loop ] = 1 + rand() % MAXRANGE;

} /* end for */

printf("Os membros do array são:\n");

/* exibe a matriz */

for ( loop = 0; loop

printf( " %d ", array[ loop ] );

} /* end for */

/* localiza e exibe o menor elemento do array */

printf( "\n" );

smallest = recursiveMinimum( array, 0, SIZE - 1 );

printf( "\nO menor elemento é: %d\n", smallest );

return 0;

} /* end main */