永发信息网

c语言 返回多个数据与接收

答案:2  悬赏:20  手机版
解决时间 2021-03-05 23:41
#include<stdio.h>
int ser()
{
intx[3];
x[0]=20;
x[1]=30;
x[2]=40;
return x[3];
}
void main()
{
int a[3];
a=ser();
printf("a[0]:%d \na[1]:%d\n a[2]:%d\n",a[0],a[1],a[2]);

}
如程序:在ser中的数组x 想把它传到主函数中的数组a中并输出 怎样实现?
最佳答案
你的这个程序是有误区的。2113

其一,数组变量记录的是数组首地址并不是内存块,也就是说返5261回的只是指针。在函数运行完了以后内存就被回收,只传数组变量是不能4102够传值的。
其二,你返回的是x[3],但是这个数1653组x并没有这个变量。会出错。

解决方法其实很简单。
在版main函数中声明数组a,然后让a作为参数传入函数,函数内部赋值。都不用返回参权数。

#include<stdio.h>
void ser(int x[])
{
x[0]=20;
x[1]=30;
x[2]=40;
}
void main()
{
int a[3];
ser(a);
printf("a[0]:%d \na[1]:%d\n a[2]:%d\n",a[0],a[1],a[2]);
}
全部回答
scanf("%d,%d,%d",&a,&b,&c); 你好,亲。scanf输入时候遇到了空格,回车,或者是tab都认为输入结束。 你的输入语句中每两个数据间有个逗号,所以每次输入完第一个数字应该输入个逗号,再输入第二个数据,第二个完后,再输入逗号,在输入第三个,第三个完后回车就得到结果了。 我觉得你没有必要这样写scanf("%d%d%d",&a,&b,&c);,去掉逗号,输入第一个数据后,空格,输入第二个,再空格,输入第三个,再回车,就行了,亲。 希望有所帮助
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
甲卷烟厂购进一批烟叶,委托乙卷烟厂为其加工
刚买了一个沙袋,自己弄得沙子,网上说要洗一下
使劲的反义词词
blow the lid off是什么意思
柿子有什么营养价值?
在桌面点右键,为什么没出现“新创建文件夹”
壹贰号照相馆在什么地方啊,我要过去处理事情
安徽六安南站到江苏昆山的长途汽车, 上午10点
按如图所示的程序计算,若开始输入的数x是正数
仪表盘上有个钥匙形状,,……后面还有个汽车标
—Haveyou________watchedthedolphinshowinth
日照钢琴老师可以一对一教学的有经验的老师谁
世界上最可悲的爱情就是感恩后的以身相许,是
侣字怎么读
哈利波特的生日是什么时候?
推荐资讯
兄弟们帮我仿写几句啊~ 列举牵挂是一笔宝贵
命中注定我爱你中正人跟存希什么关系?
关于"家乡历史我来寻"为主题的手抄报名字
仿写,大自然
送财富值,求被骂,越难听越好。。
求本洪荒小说,主角叫周清,后来成圣了
吱吱吾吾的意思是什么?
煎海鱼的做法,煎海鱼怎么做好吃,煎海鱼的家
1992年农历9月14日出生的人是什么星座
梦幻PT点灯、一下点两个~
中南财经政法大学考研会计专业分数线是多少?
一个月的工资是2000加满勤100是2100月休有两
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?