繁体   English   中英

用C语言编写具有结构和功能的程序

[英]Writing programs with structs and functions in C

我正在研究Intro to C测试,该测试要求我编写涉及结构的函数。 这个问题只要求我编写函数,但我想编写一个完整的运行代码,以便可以输入数字并查看我的代码是否正常运行。 我想我正确地编写了该函数,只是我不知道如何在数字中编码并打印出数字。

这是问题。

问题。

这是我为上述问题写的。

struct complex_numb Add_Complex(struct complex_numb C1, struct complex_numb C2){

struct complex_numb C3;

C3.real = C1.real + C2.real;
C3.imaginary = C1.imaginary + C2.imaginary;

return (C3);

};

我们还没有使用typedef。

我以为会是这样,但这是行不通的。

    #include <stdio.h>

struct complex_numb Add_Complex(struct complex_numb C1, struct complex_numb C2);

int main(){

struct complex_numb{
    float real;
    float imaginary;
};

Add_Complex(1,2,3,4);

printf("%f %f", C3.real, C3.imaginary);

}

struct complex_numb Add_Complex(struct complex_numb C1, struct complex_numb C2){

struct complex_numb C3;
C3.real = C1.real + C2.real;
C3.imaginary = C1.imaginary + C2.imaginary;


return (C3);

};

创建C1和C2,将这些值添加到结构内部的属性中,并创建名为“ C3”的complex_numb返回对象,并将该=赋给接受C1和C2的函数调用的结果。 使用typedef更改了结构并将其移出main。 这是一个可以编译的版本:

#include <stdio.h>

typedef struct {
        float real;
        float imaginary;
    }complex_numb;

complex_numb Add_Complex(complex_numb C1, complex_numb C2);

    int main()
    { 
        complex_numb C1;
        C1.real = 1;
        C1.imaginary = 2;
        complex_numb C2;
        C2.real = 3;
        C2.imaginary = 4;

    //Add_Complex(1,2,3,4);
    complex_numb C3;
    C3 = Add_Complex(C1,C2);
    printf("%f %f", C3.real, C3.imaginary);

    }

 complex_numb Add_Complex(complex_numb C1, complex_numb C2){

    complex_numb C3;
    C3.real = C1.real + C2.real;
    C3.imaginary = C1.imaginary + C2.imaginary;


    return (C3);

    }

您的实际参数和形式参数不匹配。 当您返回c3时,在尝试打印其内容之前,请不要存储该结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM