C语言如何返回值

发布网友 发布时间:2022-04-22 05:42

我来回答

5个回答

热心网友 时间:2023-07-20 07:58

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

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赋值*/
}

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

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


有问题请追问。

热心网友 时间:2023-07-20 07:59

C语言,有返回值的处理,可以分两种情况,1,返回一个值,可以用:
返回类型 函数名([参数列表])
{

return (返回值);
}
多个返回值,可以返回一个自定义结构体,
返回结构体 函灵敏名([参数列表])
{
return (结构体名);
}
也可用指针的形式,直接操作,此时,接收返回值变量的地址,可以以指针的形式,传递给函数),进行操作,具体方法和实例.

热心网友 时间:2023-07-20 07:59

你要清楚局部变量的 生命周期.

return 一次只能返回一个.

热心网友 时间:2023-07-20 08:00

c语言中,有许多情况下需要重复某些语句的计算,就可以把这些语句单独提出来形成子程序,遇到重复的地方调用就可以了;但是有些情况下需要得到子程序运行的一个结果时,就可以通过将子程序设计成带返回值的函数,比如标准的sin函数,它的返回值就是一个double型数据。

举例:
不带返回值的子程序void fun(int a,int b) { .... return; }
带返回值的函数int fun(int a,int b) { return a+b; }
当我要显示两个变量或数据的和时,可以:int a=45,b=1; printf("%d\n",fun(a,b));这个就是利用函数的返回值进行输出的。
用void表明这个函数没有可用的返回值,你的程序中如果有return语句的话也不许带参数,或者省略return语句
如果声明函数有返回值,那么你的return语句必须带参数,这个参数就是返回值
以上选择根据具体要求来定是否函数带返回值,编程者自己决定的。

热心网友 时间:2023-07-20 08:00

#include<stdio.h>
int h,l;
int cal();
void main()
{
cal();
printf("%d,%d",h,l);
}
int cal()
{
scanf("%d,%d",&h,&l);
return h,l;
}
定义成全局变量

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com