Crie um programa contendo as seguintes funções que recebem um vetor
números reais como parâmetro:
- Impressão normal do vetor.
- Impressão inversa.
- Função que retorna a média aritmética dos elementos do vetor.
Passo 1
O enunciado pede um programa em C com três funções que recebem um vetor de números reais:
– uma para imprimir o vetor na ordem normal,
– outra para imprimir na ordem inversa,
– e uma que calcule e retorne a média aritmética dos elementos.
Conteúdo envolvido: arrays, passagem de parâmetro por referência (vetor e tamanho), laços de repetição e cálculo de média.
– uma para imprimir o vetor na ordem normal,
– outra para imprimir na ordem inversa,
– e uma que calcule e retorne a média aritmética dos elementos.
Conteúdo envolvido: arrays, passagem de parâmetro por referência (vetor e tamanho), laços de repetição e cálculo de média.
Passo 2
Vamos criar a função de impressão normal. Ela recebe um vetor
Em seguida, a função de impressão inversa faz a mesma ideia, mas começando do índice n–1 até 0. Assim ela inverte a ordem de exibição dos elementos do vetor.
V
e seu tamanho n
. Basta percorrer os índices de 0 até n–1 e usar printf
para mostrar cada elemento:Em seguida, a função de impressão inversa faz a mesma ideia, mas começando do índice n–1 até 0. Assim ela inverte a ordem de exibição dos elementos do vetor.
Passo 3
Para calcular a média aritmética, primeiro somamos todos os elementos do vetor e depois dividimos pelo número de elementos. Em notação matemática temos:
Em C, acumulamos em uma variável
soma
dentro de um for
e retornamos soma / n
.Passo 4
No
Assim montamos um programa completo que cumpre os três requisitos do enunciado.
main
, declaramos um vetor de reais, lemos seu tamanho e os valores do usuário (ou podemos usar valores fixos). Depois chamamos imprimeNormal
, imprimeInversa
e exibimos o resultado de media
.Assim montamos um programa completo que cumpre os três requisitos do enunciado.
Resposta
#include <stdio.h>\n\nvoid imprimeNormal(double V[], int n) {\n for(int i = 0; i < n; i++) {\n printf("%.2f “, V[i]);\n }\n printf(”\n");\n}\n\nvoid imprimeInversa(double V[], int n) {\n for(int i = n - 1; i >= 0; i–) {\n printf("%.2f “, V[i]);\n }\n printf(”\n");\n}\n\ndouble media(double V[], int n) {\n double soma = 0.0;\n for(int i = 0; i < n; i++) {\n soma += V[i];\n }\n return soma / n;\n}\n\nint main() {\n int n;\n printf(“Quantos elementos? “);\n scanf(”%d”, &n);\n\n double V[n];\n for(int i = 0; i < n; i++) {\n printf(“Elemento %d: “, i + 1);\n scanf(”%lf”, &V[i]);\n }\n\n printf(“Vetor na ordem normal:\n”);\n imprimeNormal(V, n);\n\n printf(“Vetor na ordem inversa:\n”);\n imprimeInversa(V, n);\n\n double m = media(V, n);\n printf(“Media aritmetica: %.2f\n”, m);\n\n return 0;\n}