我对结构函数有疑问吗?

时间:2019-12-08 12:25:36

标签: c

大家好,这是我关于stackoverflow的第一篇文章!

我是编码的新手,我现在正在学习结构,但是在理解我的代码有什么问题时似乎遇到了问题。 在代码块中,说有“ le_complexo”,“ escreve_complexo”,“ soma_complexo”,“ modulo_complexo”,“ argumento_complexo”的多个定义,但仅在complexos.c文件中定义一次,并在头文件中声明。 errors on all functions type struct

我不知道函数的定义是否错误。 我也有一个包含正在使用的功能的头文件和一个用于运行它的主文件。

complexos.c文件

#include <stdio.h>
#include <math.h>
#include "complexos.h"

struct complexo{
    int x, y, i, z;
    double modulo;
};


struct complexo le_complexo(){
    //Criar a estrutura 'a'
    struct complexo a;

    //Pedir os valores (x,y,i,z) e guardar nas variáveis da estrutura 'a'
    printf("Select a number for x: \n");
    scanf("%d",&a.x);
    printf("Select a number for y: \n");
    scanf("%d",&a.y);
    printf("Select a number for i: \n");
    scanf("%d",&a.i);
    a.z = a.x + a.i * a.y;

    //retornar a estrutura
    return a;
};


void escreve_complexo(struct complexo z)
{
    printf("Valor de x: %d, \n Valor de y: %d, Valor de z: %d, Valor de i: %d, Valor de modulo: %lf \n", z.x, z.y, z.z, z.i, z.modulo);
};


struct complexo soma_complexo(struct complexo c1, struct complexo c2)
{
    struct complexo c3;

    c3.x = c1.x + c2.x;
    c3.y = c1.y + c2.y;
    c3.z = c1.z + c2.z;
    c3.i = c1.i + c2.i;
    c3.modulo = c1.modulo + c2.modulo;

    return c3;
};


double modulo_complexo(struct complexo c)
{

    c.modulo = sqrt( (pow(c.x, 2)) + (pow(c.y,2)) );

    return c.modulo;
};


double argumento_complexo(struct complexo c)
{
    double argumento;

    argumento = 1/sin(c.y/c.modulo);

    return argumento;
};

complexos.h文件

#ifndef COMPLEXOS_H_INCLUDED
#define COMPLEXOS_H_INCLUDED


struct complexo;
struct complexo le_complexo();
void escreve_complexo(struct complexo z);
struct complexo soma_complexo(struct complexo c1, struct complexo c2);
double modulo_complexo(struct complexo c);
double argumento_complexo(struct complexo c);

#endif // COMPLEXOS_H_INCLUDED

所有struct类型函数都返回错误。

有人可以帮忙吗?

0 个答案:

没有答案