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 */