C语言外层结构和上层函数 c语言都是外部函数

C语言,结构体和函数的问题。

#includestdio.h

10年积累的网站制作、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有遂宁免费网站建设让你可以放心的选择与我们合作。

struct math

{

float real;

float image;

};

void main()

{

struct math s1,s2,z;

printf("x的实部值和虚部值:");

scanf("%f %f",s1.real,s1.image);

printf("y的实部值和虚部值:");

scanf("%f %f",s2.real,s2.image);

z=add(s1,s2);

printf("相加的结果:z=%f+%fi\n",z.real,z.image);

}

struct math add(struct math s1,struct math s2)

{

struct math z;

z.real=s1.real+s2.real;

z.image=s1.image+s2.image;

return z;

}

回答的人还挺多,居然没楼上的手快,看来我只有增加内容了!

说明:

局部函数需要一个返回值,给z。

这道题可以有三种解决方法

一、用指针,让局部函数返回值用指针传递,这样局部函数可以写void add...

二、把z定义成全局变量(就是在main函数外面定义z),然后局部函数里边不要重新定义z,这样可以把局部函数运算中的值保存下来。局部函数也可以写void add...

三、用返回值,就是局部函数不要写成void add...,让他带个返回值,返回给一个数,就是上面的程序就ok了

回答

追问struct math add(struct math s1,struct math s2) 这里为什么要定义成结构体?

{

struct math z;

z.real=s1.real+s2.real;

z.image=s1.image+s2.image;

return z;

}

因为返回值是结构体

c语言 结构和函数

wage是一个结构体类型的指针,salary和subsidy是结构体的二个成员,wage-salary,这个是指针的一种表示方式,直接取成员salary的值,total+=wage-salary+wage-subsidy相当于total=total+wage-salary+wage-subsidy;等号右边的total表示上次total的值加上后面的值再赋值给total!

C语言中如何将某函数的执行结果返回上层函数?如何同时返回多个值?

用return 返回结果到调用本函数的地方.

可以返回一个指向结构体的指针, 达到返回多个值的目的. 这种方式不太安全, 或者定义全局变量,直接在子函数中改变其值,  或者官方常用的一种方式如下:

#include stdio.h

#include stdlib.h

struct POINT

{

int x;

int y;

};

void fun(struct POINT *p)

{

p-x=5;

p-y=8;

}

int main()

{

struct POINT pt;

fun(pt); //定义一个结构体变量传入函数用来接收结果,相当于返回多个值 

printf("pt.x=%d   pt.y=%d",pt.x,pt.y);

return 0;

}


网站栏目:C语言外层结构和上层函数 c语言都是外部函数
网站地址:http://myzitong.com/article/dojshge.html