Crie um programa que contenha um array de inteiros contendo 5 elementos. Utilizando apenas aritmética de ponteiros, leia esse array do teclado e imprima o dobro de cada valor lido.
Passo 1
O enunciado pede um programa em C que crie um array de 5 inteiros e use apenas aritmética de ponteiros para ler do teclado e imprimir o dobro de cada valor. O conteúdo envolvido é manipulação de arrays via ponteiros e uso de laços de repetição.
Passo 2
Declarar o array e um ponteiro para percorrê-lo. O array armazena 5 inteiros e o ponteiro int *p aponta para o início do array.
Passo 3
Fazer um laço de 5 iterações onde, em cada iteração, usamos scanf com o ponteiro p para ler um valor e depois incrementamos p para avançar ao próximo elemento.
Passo 4
Resetar o ponteiro p para o início do array. Fazer outro laço de 5 iterações onde, em cada iteração, imprimimos o dobro de *p (o conteúdo apontado) e incrementamos p para o próximo elemento.
Resposta
#include <stdio.h>
int main() {
int arr[5];
int *p = arr;
int arr[5];
int *p = arr;
// Leitura dos 5 valores usando aritmética de ponteiros
for (int i = 0; i < 5; i++) {
scanf("%d", p);
p++; // avança para o próximo elemento
}
// Volta o ponteiro para o início do array
p = arr;
// Impressão do dobro de cada valor
for (int i = 0; i < 5; i++) {
printf("%d\n", (*p) * 2);
p++; // avança para o próximo elemento
}
return 0;
}