Escrever um programa que gera um vetor de 30 elementos do tipo int, calcula a média dos valores presentes no vetor e mostra os valores que são maiores do que a média e suas respectivas posições no vetor.

Passo 1

O enunciado pede um programa em C que: gera um vetor de 30 inteiros (aleatórios), calcula a média desses 30 valores e exibe somente aqueles que são maiores do que a média, junto com suas posições.

Passo 2

Primeiro, precisamos gerar os 30 valores e já ir acumulando a soma. Para gerar números aleatórios em C, usamos as funções srand() e rand(). Vamos preencher o vetor v com rand() % 100 (ou outro intervalo à escolha) e manter uma variável sum que soma cada v[i] conforme inserimos.

Passo 3

Depois de preencher todo o vetor, calculamos a média. Se sum é a soma de todos os elementos, então a média é dada por
média = sumi=0^29 vi30 é
Em C, fazemos um cast para double antes de dividir para não perder a parte fracionária.

Passo 4

Por fim, percorremos o vetor novamente. Para cada elemento v[i], comparamos se v[i] > média. Se for, imprimimos o valor e a posição i.

Passo 5

Agora colocamos tudo junto no código-fonte em C.

Resposta

#include <stdio.h>\n#include <stdlib.h>\n#include <time.h>\n\nint main() {\n int v[30];\n int sum = 0;\n double media;\n // Inicializa gerador de números aleatórios\n srand(time(NULL));\n // Gera os valores e soma para cálculo da média\n for (int i = 0; i < 30; i++) {\n v[i] = rand() % 100; // valores entre 0 e 99\n sum += v[i];\n }\n // Calcula a média dos 30 valores\n media = (double) sum / 30.0;\n printf(“Média dos valores: %.2f\n”, media);\n // Exibe valores maiores que a média e suas posições\n printf(“Valores maiores que a média:\n”);\n for (int i = 0; i < 30; i++) {\n if (v[i] > media) {\n printf(“Posição %2d: %d\n”, i, v[i]);\n }\n }\n return 0;\n}

Exercícios relacionados