c语言中在一个自定义函数中怎么返回两个值?

作者&投稿:爨蚀 (若有异议请与网页底部的电邮联系)
方法一:设置全局变量,这样在形参中改变全局变量,在实参中也会有效。所以可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值。
方法二:如果用数组名作为形参,那么改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的。这样也会返回一组值。
方法三:可以利用指针变量,这个原理和方法二是一样的,因为数组名本身就是数组首元素的地址。就不多说了。 用结构体封装不同类型数据,或者用数组表示同类型数据,然后返回结构体指针或者数组名,本质都是用指针来返回多个参数
方法四:如果学过C++,可以引用参数

c语言如何定义一个函数可以返回多个值回去给主函数呀。~

函数的返回值顶多是一个数,通过函数直接返回的这个数只有在是指针时才能给出多个数据结果。
可以考虑以下几个方法:
返回指针:
int* display() { int *p; p=malloc(sizeof(int)*6); ... return p; } //用p[0]~p[5]计算各位
void main() { int *p; p=display(); ... free(p); }
使用全局变量:将shiwa,wa,qiao,bai,shi,ge定义成全局变量,然后子程序和主程序直接用
使用函数参数:
void display(int* shiwa,int* wa,int* qiao,int* bai,int* shi,int ge)
函数中用类似这样的用法计算:(*ge)=Data%10;
void main() { int shiwa,wa,qiao,bai,shi,ge; display(&shiwa,&wa,&qiao,&bai,&shi,&ge) }
用一个足够长的数返回:
long display() { long n; ... n=shiwa; n*=10; n+=wa; n*=10; n+=qiao; n*=10; n+=bai; n*=10; n+=shi; n*=10; n+=ge; return n; }
void main() { int wa; long n; n=display(); wa=n/10000; wa%=10; }

方法一:设置全局变量,这样在形参中改变全局变量,在实参中也会有效。所以可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值。
方法二:如果用数组名作为形参,那么改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的。这样也会返回一组值。
方法三:可以利用指针变量,这个原理和方法二是一样的,因为数组名本身就是数组首元素的地址。就不多说了。 用结构体封装不同类型数据,或者用数组表示同类型数据,然后返回结构体指针或者数组名,本质都是用指针来返回多个参数
方法四:如果学过C++,可以引用参数

c语言中用户自定义函数的格式是什么?
答:c语言中用户自定义函数的格式:函数返回类型 函数名(参数列表){ 代码段;return 函数返回值;} 例如:int test(int value){ value += 10; return value;}上面示例定义了一个名为test的函数,其返回值为int型,参数为int型,返回值为参数与10之和。注:函数类型为void时,不可有return...

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

C语言:以下程序包含一个自定义函数,该函数的功能是接收1个整型参数n...
答:第一个问号:fun(10)第二个问号:fun(15)include<stdio.h> long fun(int n){ long i,sum=1;for(i=1;i<=n;i++) // sum=sum*i;return sum;} main(){ long s=0;s= fun(10) + fun(15) ; // 10!zhi+15!printf("sum=%ld",s);} ...

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

C语言 通过自定义函数 寻找并返回数组最大值的位置下标 最大值有多个...
答:include<stdio.h>#include<math.h>int fun(int a[1000], int t){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...

c语言如何在子函数中输入一个值返回主函数
答:子函数返回直接return就好了嘛 int f(){ int a; scanf("%d",&a); return a;}

c语言问题。如果想要在一个函数中同时返回3个数应该怎么编。感谢
答:include<stdio.h> int f(){ int a[3]={1,2,3};return a;} int main(){ int *p;p=f();printf("%d,%d,%d\n",*p,*(p+1),*(p+2));} /***程序在VC++6.0里运行成功***/ 输出结果为:1,2,3

C语言自定义一个函数int length(char *s),函数返回字符串s的长度...
答:效果包你满意, 亲~~~include <stdio.h> int length(char *s);int main(void){ int len;char str[80];char ch;do { printf("Enter string(whthin 80 characters): ");gets(str);len = length(str);printf("输入字符串的长度为:%d\n", len);printf("\nDo you want continue y/n:...

C语言怎么让一个函数返回指针
答:这种方式叫做“用指针函数*creat()的返回值来传递动态内存”,这是一个C语法 首先你要注意,子函数*creat()用了malloc动态申请内存,而return返回的是指针变量所指向的地址,而不是指针!相当于将你所申请的动态内存返回给主函数 int *fun(void)//这里是指针函数 { int *p = (int *) malloc ...

在C语言中,如果一个函数返回两个数,return 语句中要怎么表示?是用数组...
答:你是想返回两个值?这是不行的,一般是通过指针达到这个效果,但函数只能返回一个值(理论上)。如果想返回多个值的话,可以用指针或者数组来做为函数的参数.才能返回多个值的.如果想返回多个值,对指针或数组不熟悉的可以用全局变量,在函数中用你定义的全局变量,则能改变全局变量的值.再在主程序中用...