Considerando a estrutura
struct Vetor{
float x;
float y;
float z;
};
para representar um vetor no
, implemente um programa que calcule a soma de dois vetores.
struct Vetor{
float x;
float y;
float z;
};
Passo 1
Vamos resumir o que a questão pede: temos uma struct chamada Vetor com três componentes x, y e z do tipo float, e a missão é criar um programa em C que leia dois vetores desse tipo e calcule a soma entre eles.
Passo 2
A gente vai criar uma função chamada soma_vetores que recebe dois parâmetros do tipo struct Vetor e retorna outro struct Vetor cujas componentes são a soma das componentes correspondentes dos vetores de entrada. Nesse passo, explicamos a teoria: somar vetores em R³ significa somar x com x, y com y e z com z.
Passo 3
No main, a gente vai declarar três variáveis do tipo struct Vetor: v1, v2 e resultado. Em seguida, usamos scanf para ler as três componentes de v1 e de v2, chamamos soma_vetores(v1, v2) e guardamos o retorno em resultado. Por fim, imprimimos o vetor soma na tela.
Resposta
#include <stdio.h>
struct Vetor {
float x;
float y;
float z;
};
float x;
float y;
float z;
};
struct Vetor soma_vetores(struct Vetor a, struct Vetor b) {
struct Vetor resultado;
resultado.x = a.x + b.x;
resultado.y = a.y + b.y;
resultado.z = a.z + b.z;
return resultado;
}
struct Vetor resultado;
resultado.x = a.x + b.x;
resultado.y = a.y + b.y;
resultado.z = a.z + b.z;
return resultado;
}
int main() {
struct Vetor v1, v2, soma;
printf(“Digite as componentes do primeiro vetor (x y z): “);
if (scanf(”%f %f %f”, &v1.x, &v1.y, &v1.z) != 3) {
printf(“Entrada invalida\n”);
return 1;
}
printf(“Digite as componentes do segundo vetor (x y z): “);
if (scanf(”%f %f %f”, &v2.x, &v2.y, &v2.z) != 3) {
printf(“Entrada invalida\n”);
return 1;
}
soma = soma_vetores(v1, v2);
printf(“Soma dos vetores: (%.2f, %.2f, %.2f)\n”, soma.x, soma.y, soma.z);
return 0;
}
struct Vetor v1, v2, soma;
printf(“Digite as componentes do primeiro vetor (x y z): “);
if (scanf(”%f %f %f”, &v1.x, &v1.y, &v1.z) != 3) {
printf(“Entrada invalida\n”);
return 1;
}
printf(“Digite as componentes do segundo vetor (x y z): “);
if (scanf(”%f %f %f”, &v2.x, &v2.y, &v2.z) != 3) {
printf(“Entrada invalida\n”);
return 1;
}
soma = soma_vetores(v1, v2);
printf(“Soma dos vetores: (%.2f, %.2f, %.2f)\n”, soma.x, soma.y, soma.z);
return 0;
}