Exercícios com Vetores

Exercícios Básicos

  1. Faça uma função que recebe um vetor de 50 inteiros e retorne o seu maior elemento
  2. Faça uma função que recebe um vetor de 15 elementos e retorna ele invertido, isto é, do fim para o início
  3. Faça uma função que recebe dois vetores de 20 inteiros e armazene no segundo vetor todos os elementos do primeiro, exceto os negativos e 0. A função deve retornar o total de elementos preenchidos no vetor 2

Exercícios Avançados

Para resolver estes exercícios é interessante implementar uma outra função que SORTEIE os elementos de um vetor. Para isso, você irá precisar da função rand(), que devolve um número entre 0 e um valor determinado. Porém, para que funcione corretamente, a função srand(time(NULL)) deverá ser chamada no início do programa. Veja abaixo:

#include <stdlib.h> // necessário para usar srand(..), rand(..)
#include <time.h> // necessário para usar time(..)
...

main()
{
...
srand(time(NULL));
...
...
// Sorteio de um valor aleatório entre 0 e 9

int valor = rand() % 10;
...

As duas funções abaixo devem receber um vetor desordenado e devolvê-lo ordenado:

  1. Faça uma função para implementar o algoritmo de ordenação da bolha
  2. Faça uma função para implementar o algoritmo de ordenação por seleção direta (achar o maior e substituir pelo último)
  3. Agora, vamos descobrir qual deles é mais eficiente: de alguma forma, descubra quanto tempo leva a ordenação por bolha e pelo outro método. Uma das (muitas) maneiras de fazer isso, é através da função clock(), que retorna quanto tempo de processador se passou desde o início do programa. Assim, se você chamá-la antes e depois de utilizar uma das funções de ordenação, basta calcular a diferença de tempos.

Cuidado: a função clock() retorna um inteiro longo (long int). Para escrever o valor na tela, use %ld no printf.

Observe que talvez seja necessário criar e ordenar um vetor MEIO longo para haver alguma diferença nos tempos... Experimente!