cblc/exercicios/06/README.org

2.3 KiB

Curso Básico da Linguagem C

Exercícios da aula 6: Vetores

1. Desafio: Função print_array_shift

Dado o programa abaixo:

#include <stdio.h>

int main(void) {
    int vetor[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int desloca = ???; // <--- inicializar com o valor do deslocamento!

    print_array_shift(/* ??? */);

    return 0;
}

Escreva a função print_array_shift de acordo com essa descrição:

PROTÓTIPO:
    void print_array_shift(int *arr, int size, int shift);

DESCRIÇÃO:
    Desloca para a esquerda os elementos do vetor 'arr', de tamanho 'size',
    em 'shift' posições e imprime os valores na sequência resultante.

No teste, programa deverá imprimir no terminal:

:~$ ./a.out
6 7 8 9 10 1 2 3 4 5

2. Desafio: Função array_shift

Dado o programa abaixo:

#include <stdio.h>

int main(void) {
    int vetor[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int desloca = ???; // <--- inicializar com o valor do deslocamento!

    array_shift(/* ??? */);

    /* Rotina de impressão do resultado do deslocamento */

    return 0;
}

Crie a função array_shift de acordo com a descrição abaixo:

PROTÓTIPO:
    void array_shift(int *arr, int size, int shift);

DESCRIÇÃO:
    Desloca para a esquerda os elementos do vetor 'arr', de tamanho 'size',
    em 'shift' posições.

A saída do teste deve ser a mesma do desafio anterior.

3. Desafio: Função array_reverse

Dado o programa abaixo:

#include <stdio.h>

int main(void) {
    int vetor[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    /* Rotina da impressão do vetor original */
    
    array_reverse(/* ??? */);

    /* Rotina de impressão do vetor invertido */

    return 0;
}

Escreva a função array_reverse de acordo com a descrição abaixo:

PROTÓTIPO:
    void array_reverse(int *arr, int size);

DESCRIÇÃO:
    Inverte a ordem dos elementos do vetor 'arr'.

O teste deverá imprimir…

:~$ ./a.out
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1