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*maior
ea.z*maior
.
Passo 5
No
main
:- Declaramos
Vetor A, B;
. - Pedimos ao usuário para digitar as três coordenadas de
A
e 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
S
eM
no 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;
}