C语言小题两道

一题#include<stdio.h>doublesub(doublex,doubley,doublez){y-=1.0;z=z+x;returnz;}main(){do... 一题
#include <stdio.h>
double sub (double x,double y,double z)
{y-=1.0;z=z+x;return z;}
main ()
{double a= 2.5, b=9.0;
printf("%f",sub(b-a, a , a) );
}
输出结果是?9.000000
2题
#include <stdio.h>
void sub (double s,double*y,double*z)
{*y=*y-1.0; *z=*z+x;}
main()
{double a=2.5,b=9.0,*pa,*pb;
pa=&a;pb=&b;
sub (b-a, pa ,pa); printtf("%f",a);
}
输出结果是?8.000000

求尽量详细的解答 最后最好再来点小总结 嘿嘿
这都是国二的章后习题,原题,大家不用说程序有问题不是为了做程序用的。
就当做小题解一下思路。
展开
 我来答
moxsone
推荐于2016-02-19 · TA获得超过3331个赞
知道大有可为答主
回答量:2796
采纳率:50%
帮助的人:1476万
展开全部
#include <stdio.h>
double sub (double x,double y,double z)
{ //调用时传入: x=9-2.5=7.5,y=2.5,z=2.5
y-=1.0;//y=y-1=2.5-1=1.5
z=z+x;//z=2.5+9.0-2.5=9.0
return z;//返回9.0
}
main ()
{
double a= 2.5, b=9.0;
//函数调用返回了9.0,所以输出9.000000
printf("%f",sub(b-a, a , a) );
getchar();
}

#include <stdio.h>
void sub (double x,double*y,double*z)
{//调用时传入:x=9.0-2.5=7.5,y指向a(a=2.5),z指向a(a=2.5)
*y=*y-1.0;//也就是:a=a-1.0=2.5-1.0=1.5
*z=*z+x;//也就是a=a+9.0-2.5=1.5+9.0-2.5=8.0
//此时函数虽然没有返回值,但是因为形式参数为指针,所以值的改变已经反映到了主函数中
//*z=8.0,即是指向主函数中a变量的指针的值已经改变成了8.0所以主函数中输出8.000000
}
main()
{
double a=2.5,b=9.0,*pa,*pb;
pa=&a;
pb=&b;
sub (b-a, pa ,pa);
printtf("%f",a);
}
百度网友183c6c0
2009-05-15 · TA获得超过156个赞
知道答主
回答量:86
采纳率:100%
帮助的人:20.6万
展开全部
第一题:
main()前面加上VOID你没有返回值;
SUB函数调用:它有返回值且返回类型为double所以函数类型为double:
把b-a的值赋给x,
a给y
a给z
y-=1,即为:y=y-1;
之后将z的值返回并且输出.
第二个题有问题:
重新写过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式