| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1114 人关注过本帖
标题:那位高手解决一下 错在哪了 谢了
只看楼主 加入收藏
★逆时光
Rank: 2
来 自:浙江
等 级:论坛游民
帖 子:11
专家分:42
注 册:2011-12-29
收藏
得分:1 
为什么一定要 void w(int a,int b),直接用有返回值的不就行了。。。改为int w(int a,int b),再加个return.....
2012-01-10 14:31
维他命Q
Rank: 1
等 级:新手上路
帖 子:21
专家分:7
注 册:2012-1-12
收藏
得分:1 
这个问题很典型,9楼点对了一点就是,你的代码中,形参值不会传给实参。。下面的程序就是你所需要的结果


/* Note:Your choice is C IDE */
#include "stdio.h"
int x,y;              /*把x,y放在首,做全局变量*/
void main()
{void w(int a,int b);
    printf("请输入2个数:");
    scanf("%d,%d",&x,&y);
    if(x>y)
    w( x, y);
    printf("%d %d",x,y);
   
}
void w(int a,int b)
  {x=b;              /*子函数稍微改动一下*/
   y=a;
  }
2012-01-13 16:49
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:1 
建议大家去敲代码,能把主函数两个值换过来了再把自己的程序贴出来,貌似有些代码是和楼主一样的错误。

[ 本帖最后由 有容就大 于 2012-1-13 19:22 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-01-13 19:20
lynsen
Rank: 2
等 级:论坛游民
帖 子:31
专家分:52
注 册:2011-9-4
收藏
得分:1 
C语言里面函数实参和形参是“值传递”方式,是单向传递的
用指针可以解决此问题,lz看看书
2012-01-14 00:05
chenliangjs
Rank: 2
等 级:论坛游民
帖 子:34
专家分:89
注 册:2012-1-14
收藏
得分:1 
你可以把要调用的子函数写在主函数的前面。将主函数放到最后编写,这用就不用函数的调用声明语句了,避免代码不记得的情况。。。
2012-01-14 14:08
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
收藏
得分:1 
这里的函数是值传递,改变的是形参啊,实参还是原来的。建议使用指针,函数中改变指针的指向就OK啦。
2012-01-14 15:42
weipeng1217
Rank: 5Rank: 5
等 级:职业侠客
帖 子:175
专家分:386
注 册:2012-1-12
收藏
得分:1 
错误原因:只能实参的值传给形参,形参的值是不会传给实参的,你的代码里x,y(实参)的值没有改变,你只要把输出放到子函数里就行了!
程序代码:
#include "stdio.h"

 void main()

 {
     void w(int a,int b);
     int x,y;
     printf("请输入2个数:");
     scanf("%d,%d",&x,&y);
     if(x>y)
     w( x, y);
   
  

 }
   void w(int a,int b)
   {
       int c;
       c=a;
       a=b;
       b=c;
       printf("%d %d",a,b);
   }

 


C坛友交流群 群号:161091913 ,欢迎经常在线的朋友加入,一起学习,一起进步。。
2012-01-14 15:43
canri
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-11-29
收藏
得分:1 
形参和实参的区别 函数w 中的a,b 是形参 ,主函数声明的 x,y 是实参 , 函数w 交换的是形参 a,b 而不是实参 所以x,y的值不会变化 用指针就能访问到实参的值 也就能改变它们
2012-01-14 15:57
何时是月明
Rank: 2
等 级:论坛游民
帖 子:30
专家分:76
注 册:2011-9-27
收藏
得分:1 
你可能在输入的时候没有输入“,”。
2012-01-14 17:06
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:1 
你是没有搞明白形参和实参的使用,ab值交换了但是xy并没有交换。去看看书就明白了
2012-01-15 03:23
快速回复:那位高手解决一下 错在哪了 谢了
数据加载中...
 
   



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

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