[英]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.