Pergunta/Tarefa:
Considere o seguinte trecho de código:
// declara, constrói e inicializa um array de 10 inteiros
int valores[] = {6, 3, 90, 1, 54, 7, 12, 32, 9, 4};
int temp;
Escreva um programa C que inverta a ordem dos elementos do vetor valores usando apenas a variável temp, ou seja, não é permitido usar nenhuma função disponível em bibliotecas C. Sua saída deverá ser algo como:
Ordem inicial:
6 3 90 1 54 7 12 32 9 4
Ordem invertida:
4 9 32 12 7 54 1 90 3 6
Resposta/Solução:
Veja a resolução comentada deste exercício usando C:
#include <stdio.h>
#include <stdlib.h>
// função principal do programa
int main(int argc, char *argv[]){
// varíáveis usadas na resolução do problema
// declara, constrói e inicializa um array de 10 inteiros
int valores[] = {6, 3, 90, 1, 54, 7, 12, 32, 9, 4};
int tam_vetor = 10;
int i, temp, inicio, fim;
// vamos mostar a ordem inicial dos elementos no vetor
printf("Ordem inicial:\n\n");
for(i = 0; i < tam_vetor; i++){
printf("%d ", valores[i]);
}
// vamos inverter a ordem dos elementos no array
inicio = 0, fim = tam_vetor - 1;
while(inicio < fim){
temp = valores[inicio];
valores[inicio] = valores[fim];
valores[fim] = temp;
// incrementa e decrementa as variáveis de controle
inicio++;
fim--;
}
printf("\n\nOrdem invertida:\n\n");
for(i = 0; i < tam_vetor; i++){
printf("%d ", valores[i]);
}
printf("\n\n");
system("PAUSE");
return 0;
}
|