Exercícios Básicos
- Faça uma função que recebe um vetor de 50 inteiros e retorne o seu maior elemento
- Faça uma função que recebe um vetor de 15 elementos e retorna ele invertido, isto é, do fim para o início
- 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:
- Faça uma função para implementar o algoritmo de ordenação da bolha
- Faça uma função para implementar o algoritmo de ordenação por seleção direta (achar o maior e substituir pelo último)
- 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!