C语言中自定义函数返回值的个数

作者&投稿:五药 (若有异议请与网页底部的电邮联系)
C语言自定义函数返回值的问题~

你调用了a()之后,函数a()会返回一个5,但你没有将其返回值保存起来,所以这个返回值会被抛弃。要么用一个变量将函数a的返回值保存起来:int b=a(),要么将函数的返回值作为另一个函数的参数输入:printf("%d",a())。

如果你想要结果在fact()子函数里输出,可以按下面这个程序来做#includeint fact(int n)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0) break;
}
if(i==j) printf("%d,",i);
}
} int main()
{
int n,i;
printf("input numbers:");
scanf("%d",&n);
fact(n);
return 0;
}

如果你想要在主程序中输出
可以在子程序中定义数组保存,用指针传参,或者数组传参



在C中,正常情况下,我们只能从函数中返回一个值。但在有些情况下,我们需要从函数中返回多个值,此时使用数组或指针能够很好地完成这样的任务。这里是一
个示例,这个程序使用一个整型数组作为参数,并将数组元素的和与积返回给调用函数。下面是C代码,这是一种常见情况。下面给出实现技巧:

1.
#include

2.
#include

3. int*
Pool(int array[],int size)

4.
{

5.
int *x;

6.
int i=0;

7.
int
a[2]={0,1};

8.
for(i=0;i

9.
{

10.

a[0]+=array[i];
// 存储数组元素值的和

11.

a[1]*=array[i];
// 存储数组元素值的积

12.
}

13. //
将数组的基地址赋值给整型指针

14.
x=&a[0];

15. //
返回整个数组

16.
return x;

17. }

18.

19. int main()

20. {

21. int
a[]={1,2,3,4};

22. int
*c; c = Pool(a,4);

23.
printf("Sum = %d\nProduct = %d\n",c[0],c[1]);

24.
getch();

25.
return 0;

26. }

这样,我们就知道如何使用数组和指针从C函数中返回多个值。在很多情况下你会发现这个技巧很有用。

C语言中,函数只能返回一个值,如果想从函数得到多个返回值,可以通过指针参数实现。

return (a,b);

返回的是b,因为(a,b)是一个逗号表达式,这个表达式的值就是最右边的一个表达式的值,即这里的b

这个你必须要结构体的。

#include<stdio.h>
struct tt{
int x,y;
};

tt A(int p,int q)
{
tt a;
a.x=p;
a.y=q;
return a;
}
int main()
{
tt x=A(0,1);
printf("%d %d\n",x.x,x.y);
return 0;
}
比如上面这个形式。。返回的值存在main函数的x里面
自己去试验一下吧

你的return(a,b)是不行的,那是一个逗号表达式,返回的只是b的值
可以用指针呀,不必返回,还可以用结构体嘛

函数只能有一个返回值。
纠正:
return(a,b)这种写法不是返回第一个值,它是把(a,b)当成逗号表达式,返回的是第2个,即b的值。

解决方法:
不可能返回2个值,通过子函数,使用指针方法改变多个值,通过子函数传入要改变量的地址,直接对地址单元内容操作,达到改变多个值的作用。


c语言中在一个自定义函数中怎么返回两个值?
方法一:设置全局变量,这样在形参中改变全局变量,在实参中也会有效。所以可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值。方法二:如果用数组名作为形参,那么改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的。这样也会返回一组值。方法三:可以利用指针变量,这个原...

C语言中自定义函数返回值为小数 主函数输出小数点后归零
函数类型要定义为 double:double ave(int n,int a[]){} 你定义成 int, 所以返回值取整了。

c语言一个函数返回多个值
在C语言中,一般情况下函数的返回值是通过函数中的return语句来实现的,每调用一次return语句只能从函数中返回一个值。但在实际很多应用中,我们需要从函数中返回多个值,那我们可以用什么方法实现呢?此时我们可以用三种方法来实现。方法一:设置全局变量 全局变量是在函数外部定义的全局变量,它不属于任何...

c语言编程利用自定义函数求两个数的和
c语言编程利用自定义函数求两个数的和的方法如下:首先需要定义一个自定义函数,命名为sum,参数为两个整数a和b,返回值为整数类型。在自定义函数中,使用return语句返回a和b的相加结果。在主函数中,定义两个整数变量x和y,使用scanf()函数从键盘输入它们的值。在主函数中,调用sum(x,y)函数,并将...

C语言 通过自定义函数 寻找并返回数组最大值的位置下标 最大值有多个...
{int i,max=0,N;for (i=0;i<t;i++)if (a[i]>a[max]) max=i;return max;}main(){int x[1000];int i,N,maxid;scanf("%d",&N);for(i=0;i<N;i++) x[i]=N*sin(i*0.16);maxid=fun(x,N);printf("最大的数是:%d 下标: %d \\n",x[maxid],maxid);} ...

c语言中,已定义的函数有返回值,函数调用能否作为一个独立的语句_百度知 ...
1 可以,返回值被丢弃 2 可以,返回值是实参的值 3 可以,用返回值来进行运算 4 和2一样,是否书写错误

C语言中area函数的定义和使用
c语言里没有这个函数area,但是可以自定义函数。函数定义:使用:返回值类型 函数名(类型 变量名,类型 变量名,…){ 函数体;return (数据);} 例如:int sum(int a, int b){ return a + b;}

C语言自定义函数需要有输入值但是没有返回值,应该定义函数类型为什么...
应该定义函数类型为void 注意 不能是不写 如果不写 那么默认返回值是int 只有明确写明返回值是void类型,那么才是没有返回值的 比如 void func(int a);

简述c语言中用户自定义函数由哪几部分组成
1、函数的返回值类型 2、函数的名称 3、函数的参数 4、函数主体代码块 示例代码:int definePlus(int a, int b){ a = a + 1;b = b + 1;return a + b;} 例如上面代码中就定义了一个返回值为int类型的函数,其函数名为definePlus,一对小括号中的内容为这个函数的参数,也就是说这个...

C语言中函数调用怎么返回两个值
在C语言中,函数只能返回一个值,要返回两个值,可以改换思路,通过其它方式做到。1 建立数组,返回指针。在要返回的两个值类型相同时,可以用创建数组的方式,将要返回的值存在数组中,并返回数组首地址,这样就可以实现返回两个值的效果。需要注意的是,要返回数组首地址,那么返回的值不可以是局部...

太子河区15359702738: c语言一个函数返回多个值 -
荡淑复方: 函数最终只能返回一个值!!! 你可以用“数组或指针”; 如 #include<stdio.h> void ser(int *x,int *y) {*x=20;//把改变后的结果传给主函数*y=30; } void main() {int a,b;a=1,b=2;ser(&a,&b);printf("a:%d b:%d\n",a,b);}

太子河区15359702738: C语言,输入3个数,打印最小值.自定义,调用返回值最小的函数 -
荡淑复方: 首先,注释风格不对. 正确的注释应该是 // 语句 (不可跨行) 或/* 语句 */ (可跨行) 其次,寻找最小值函数中,如果a>=b,最小值应该赋值b, 你看一下.

太子河区15359702738: C语言中自定义的函数可以一次返回多个值吗?就是用return一次返回多个值 -
荡淑复方: 这个目前C语言还不支持.目前C语言的返回值只能是一种类型.如果想返回多个值的话,那楼主可以定义一个结构体类型,将结构体类型返回就可以了.实例代码如下:#include <stdio.h>#include <stdlib.h> struct return_test { int a; int b; }; struct ...

太子河区15359702738: C语言:如何定义一个函数!使它返回多个值 -
荡淑复方: 可以有很多方法,如:1):自定义一个结构体,把你想要返回的信息放在结构体里返回.2):通过指针参数返回.3):映射同一内存区域..... 很多

太子河区15359702738: C语言中主函数是否有返回值,如果有,最多有几个? -
荡淑复方: 有且必须要 C99以上标准规定主函数必须返回int 返回值可以有多个值但是只返回其中一个比如FILE *p = fopen(file_path); if (p==NULL)return 1; elsereturn 0; 这样主函数可以返回1或0,但是每次运行文件打开失败与否只返回其中一个

太子河区15359702738: C语言自定义函数返回多个值 -
荡淑复方: // 因为程序错得太离谱了,无心帮你修改,给你个例子吧#include <stdio.h>// 计算二维数组的最大值,并记录其行列号.void main() { int m, r, c; int a[3][4] = {{12,23,34,5},{45,32,56,6},{9,16,34,21}}; int max(int ia[][4], int *r, int *c); m = max(a, &r, &c); ...

太子河区15359702738: C语言中函数定义的返回值为空的问题 -
荡淑复方: 改成这样就对了: void f() {float a;printf("%f",a);//你原来的输出格式不对 } void类型的函数无返回值,也就是说,不需要return语句 当然也可以在函数末尾加上一条空的return语句:return;(和return 1;是不同的) void f(float a) {printf("%f",a); } 也是对的....

太子河区15359702738: c语言自定义函数中,怎样返回多个数值呢??好像return不行啊,求高手举例解答 -
荡淑复方: 采用数组呀!如rrturn a[n]:要返回的n个值放在a[n]

太子河区15359702738: c语言问题.如果想要在一个函数中同时返回3个数应该怎么编.感谢 -
荡淑复方: 同时返回3个数不能用return了,因为遇到return会结束该函数,所以可以定义全局变量.

太子河区15359702738: C语言定义一个函数,找出一维数组中的某个数的个数后返回.初学者,暂时未学到指针.请大家帮帮忙/ -
荡淑复方: #include <stdio.h> int find(int *a,int n,int f) { int sum=0; for(int i=0;i<n;i++) { if(a[i]==f) sum++; } if(sum==0) return -1; else return sum; } int main() { int a[1000]; int n;int f; printf("请输入字符组的大小:\n"); scanf("%d",&n); printf("请输入%d...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网