Faça um programa para armazenar em memória um vetor de dados contendo 1500 valores do tipo int, usando a função de alocação dinâmica de memória CALLOC:
(a) Faça um loop e verifique se o vetor contém realmente os 1500 valores inicializados com zero (conte os 1500 zeros do vetor).
(b) Atribua para cada elemento do vetor o valor do seu índice junto a este vetor.
© Exibir na tela os 10 primeiros e os 10 últimos elementos do vetor.
(a) Faça um loop e verifique se o vetor contém realmente os 1500 valores inicializados com zero (conte os 1500 zeros do vetor).
(b) Atribua para cada elemento do vetor o valor do seu índice junto a este vetor.
© Exibir na tela os 10 primeiros e os 10 últimos elementos do vetor.
Passo 1
A gente precisa alocar dinamicamente um vetor de 1500 ints usando calloc, que já inicializa tudo com zero.
Passo 2
Em seguida, rodamos um loop de 0 até 1499 contando quantos elementos ainda valem zero para confirmar que o calloc fez o serviço.
Passo 3
Depois disso, percorremos de novo e atribuímos a cada posição o valor do próprio índice.
Passo 4
Por fim, exibimos na tela os 10 primeiros elementos (índices 0–9) e os 10 últimos (índices 1490–1499), e liberamos a memória.
Resposta
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int main(void) {
int n = 1500;
int *v = calloc(n, sizeof(int));
if (v == NULL) {
printf(“Falha na alocação de memória.\n”);
return 1;
}
int n = 1500;
int *v = calloc(n, sizeof(int));
if (v == NULL) {
printf(“Falha na alocação de memória.\n”);
return 1;
}
// (a) Verificar zeros
int count_zero = 0;
for (int i = 0; i < n; i++) {
if (v[i] == 0) {
count_zero++;
}
}
printf("Total de zeros encontrados: %d\n", count_zero);
// (b) Atribuir índice
for (int i = 0; i < n; i++) {
v[i] = i;
}
// (c) Exibir 10 primeiros
printf("10 primeiros elementos:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", v[i]);
}
printf("\n");
// Exibir 10 últimos
printf("10 últimos elementos:\n");
for (int i = n - 10; i < n; i++) {
printf("%d ", v[i]);
}
printf("\n");
free(v);
return 0;
}