首先说明一下你的程序的问题与缺陷:
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,那么可以使用引用类型:
/*法一:使用引用*/#include<stdio.h>
void 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,那么可以使用指针:
/*法二:使用指针*/#include<stdio.h>
void 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赋值*/
}
------------------
以上两种方法都可以解决你说的问题。
有问题请追问。
return后接一个值。\r\n在调用这个函数的函数里面,调用它的时候希望获得一个值,如果不希望获得这个值的时候,用void声明就好。如果需要,比如说需要得到一个整形值\r\n就声明\r\nint func()\r\n在调用它的比如main里面\r\nfunc()的作用就可以相当于一个int型常数\r\n比如外面定义了\r\nint max(int a,int b)\r\n{\r\nreturn a>b?a:b\r\n}\r\n主函数里面是\r\nmain()\r\n{\r\nint A\r\nA=max(1,2)\r\n}\r\n这时候就是通过max计算 1>2 则return 一个1 ,1 回答于 2022-11-16