c语言中子程序返回值在哪个地方,C语言怎么返回值

首先说明一下你的程序的问题与缺陷:

1: return语句 只能返回一个值,而不能写成 “return h,l;”

2:你在main()中定义了h,l,而在调用cal()时,又定义了h,l,这两个h,l是完全不同的两组。即使你为cal()里的h,l赋值,那么返回到main()时,h,l仍然为0.

3:你在cal()里的scanf写的不好。两个%d之间最好什么都没有,加了逗号,可能会在读取时,h,l赋值错误。(具体请看我下面的程序)

下面是我的解法:

先问一下,你用的是TC2.0还是VC6.0?

如果是VC6.0,那么可以使用引用类型:

/*法一:使用引用*/#includevoid cal(int&ch, int&cl); /*声明ch,cl为引用类型*/void main(){ int h=0,l=0; cal(h, l); /*这里将h,l传入cal()*/ printf("%d,%d",h,l); }void cal(int &ch, int &cl){ scanf("%d%d",&ch,&cl);/*这里为ch,cl赋值*/}TC2.0中好像不支持引用类型。我没测试。

-------------------------

如果是TC2.0,那么可以使用指针:

/*法二:使用指针*/#includevoid cal(int *ph, int *pl); /*这里将ph,pl声明为指针*/void main(){ int h=0,l=0; cal(&h, &l); /*将变量h,l地址传过去。*/ printf("%d,%d",h,l);}void cal(int *ph, int *pl){ scanf("%d%d",ph,pl); /*为ph,pl赋值*/}------------------

以上两种方法都可以解决你说的问题。

有问题请追问。

取消

评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值