首先说明一下你的程序的问题与缺陷:
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赋值*/}------------------
以上两种方法都可以解决你说的问题。
有问题请追问。
取消
评论