Crie uma estrutura denominada Vetor para representar um vetor de dimensões (coordenadas)
e
no espaço tridimensional:
. Desenvolva uma função para calcular e retornar a soma de dois vetores
e
e uma função para calcular e retornar a multiplicação de A pela coordenada de maior valor de B. Faça um programa principal que leia do usuário as coordenadas dos dois vetores e que chame as duas funções citadas para imprimir os resultados retornados por elas.
Passo 1
O enunciado pede que a gente crie em C uma estrutura chamada ,
e
. Depois, precisamos de duas funções: uma que some dois vetores e outra que multiplique o vetor
pela maior coordenada de
. Por fim, no e
e imprimir os resultados dessas funções.
Vetor para guardar três coordenadas tridimensionais
main vamos ler do usuário os valores de
Passo 2
Definimos a estrutura
Vetor com três campos do tipo double para armazenar as coordenadas:typedef struct {
double x;
double y;
double z;
} Vetor;
Passo 3
Implementamos a função
somaVetores, que recebe dois vetores a e b e retorna um vetor r cujas componentes são a soma componente a componente:Passo 4
Implementamos a função ,
e
e multiplica todas as componentes de
multiplicaMaiorCoord, que encontra a maior entre
a por esse valor:- Inicializa
maior = b.x. - Se
b.y > maior, fazmaior = b.y. - Se
b.z > maior, fazmaior = b.z. - Retorna o vetor cujo
são a.x*maior,a.y*maiorea.z*maior.
Passo 5
No
main:- Declaramos
Vetor A, B;. - Pedimos ao usuário para digitar as três coordenadas de
Ae depois deB, usandoscanf("%lf", &A.x)etc. - Chamamos
somaVetores(A, B)e armazenamos o resultado emVetor S. - Chamamos
multiplicaMaiorCoord(A, B)e armazenamos emVetor M. - Imprimimos
SeMno formato(x, y, z).
Resposta
#include <stdio.h>
typedef struct {
double x;
double y;
double z;
} Vetor;
Vetor somaVetores(Vetor a, Vetor b) {
Vetor r;
r.x = a.x + b.x;
r.y = a.y + b.y;
r.z = a.z + b.z;
return r;
}
Vetor multiplicaMaiorCoord(Vetor a, Vetor b) {
double maior = b.x;
if (b.y > maior) maior = b.y;
if (b.z > maior) maior = b.z;
Vetor r;
r.x = a.x * maior;
r.y = a.y * maior;
r.z = a.z * maior;
return r;
}
int main() {
Vetor A, B, S, M;
printf("Digite as coordenadas de A (x y z): ");
scanf("%lf %lf %lf", &A.x, &A.y, &A.z);
printf("Digite as coordenadas de B (x y z): ");
scanf("%lf %lf %lf", &B.x, &B.y, &B.z);
S = somaVetores(A, B);
M = multiplicaMaiorCoord(A, B);
printf("Soma dos vetores A + B = (%.2f, %.2f, %.2f)
", S.x, S.y, S.z);
printf("A multiplicado pela maior coord. de B = (%.2f, %.2f, %.2f)
",
M.x, M.y, M.z);
return 0;
}