Considerando a estrutura
struct Vetor{
float x;
float y;
float z;
};
para representar um vetor no R^3, implemente uma função que calcule a soma de dois vetores. Essa função deve obedecer ao protótipo:
void soma (struct Vetor* v1, struct Vetor* v2, struct Vetor* res);
onde os parâmetros v1 e v2 são ponteiros para os vetores a serem somados, e o parâmetro res é um ponteiro para uma estrutura vetor onde o resultado da operação deve ser armazenado.

Passo 1

O enunciado pede para criar uma função em C que some dois vetores em R³ representados por uma struct com campos x, y e z, recebendo ponteiros para v1, v2 e para o vetor resultado.

Passo 2

Precisamos declarar a função com o protótipo exato: void soma(struct Vetor* v1, struct Vetor* v2, struct Vetor* res); para garantir compatibilidade com o que o professor especificou.
Dentro da função, vamos acessar cada componente dos vetores usando o operador ->, que serve para desreferenciar um ponteiro para struct e acessar seus campos.

Passo 3

Realizamos a operação de soma componente a componente: res->x = v1->x + v2->x; res->y = v1->y + v2->y; res->z = v1->z + v2->z;. Assim armazenamos o resultado no vetor apontado por res.
Como a função retorna void, não precisamos usar return com valor. Basta encerrar a função após atribuir todas as componentes.

Resposta

void soma(struct Vetor* v1, struct Vetor* v2, struct Vetor* res) {
    // soma componente x
    res->x = v1->x + v2->x;
    // soma componente y
    res->y = v1->y + v2->y;
    // soma componente z
    res->z = v1->z + v2->z;
}

Exercícios relacionados