| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 477 人关注过本帖
标题:我错在哪里,函数调用问题
只看楼主 加入收藏
ycd123
Rank: 1
等 级:新手上路
帖 子:42
专家分:5
注 册:2010-1-6
结帖率:91.67%
收藏
 问题点数:0 回复次数:3 
我错在哪里,函数调用问题
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
#include<stdio.h>
main()
{void arr(int a,int b);
int x,y,z;
scanf("%d %d %d",&x,&y,&z);
if(x>y)arr(x,y);
if(x>z)arr(x,z);
if(y>z)arr(y,z);
printf("%d %d %d\n",x,y,z);
}
void arr(int a,int b)
{int temp;
temp=b;
b=a;
a=temp;}

我想用函数调用的方法解答,但是结果输出没有改变,我错在哪啊,麻烦告诉一声!感谢了



搜索更多相关主题的帖子: 函数 
2010-01-10 17:51
郁闷→成仙
Rank: 2
等 级:论坛游民
帖 子:12
专家分:27
注 册:2010-1-10
收藏
得分:0 
那个void情楼主注意哈!那个是空类型,没有返回值。
说白了,在调用函数里确实交换了a,b的值,但是木有返回。
你的函数是徒劳滴~~~~
2010-01-10 19:40
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:0 
这个是形式参数和实际参数的问题
你调用的函数的调换的只是a和b的值 也就是形参的值  但没有改变实参的值
要想调换的话 用指向参数的指针做参数传给调用函数
2010-01-10 20:44
ycd123
Rank: 1
等 级:新手上路
帖 子:42
专家分:5
注 册:2010-1-6
收藏
得分:0 

明白了,谢谢两位!~~
2010-01-10 21:18
快速回复:我错在哪里,函数调用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016776 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved