| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1221 人关注过本帖
标题:问一个非常迷茫的问题。。。
只看楼主 加入收藏
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:18 
问一个非常迷茫的问题。。。
各位大侠,小弟我可能是吃多了没事干,想请教一个非常没意思的问题
值传递不能改变主调函数中的变量,只能改变局部变量,若我不用指针,而又必须用函数调用,是不是就不可能实现两数值互换了?大侠们如有方法,请示下,请大家注意:1,不能用指针;2必须用函数调用
#include<stdio.h>
int swap(int x,int y)
{
    int temp;
    temp=x;
    x=y;
    y=temp;
}
main()
{
    int a,b,s;
    printf("输入两个数:\n");
    scanf("%d,%d",&a,&b);
    s=swap(a,b);
    printf("输出两个数:\n");
    printf("%d,%d\n",a,b);   
}
2010-06-09 21:37
wylzjcw
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:185
专家分:174
注 册:2009-1-4
收藏
得分:3 
全局变量也可以
#include<stdio.h>
void swap(int x,int y)
{
    int temp;
    temp=x;
    x=y;
    y=temp;
}
int a,b;//全局变量
void main()
{
    printf("输入两个数:\n");
    scanf("%d,%d",&a,&b);
    swap(a,b);
    printf("输出两个数:\n");
    printf("%d,%d\n",a,b);   
}

勾股定理用相似三角形证明最合理
2010-06-09 22:54
biccaso2010
Rank: 2
等 级:论坛游民
帖 子:7
专家分:24
注 册:2010-6-1
收藏
得分:1 
以下是引用wylzjcw在2010-6-9 22:54:44的发言:

#include
void swap(int x,int y)
{
    int temp;
    temp=x;
    x=y;
    y=temp;
}
int a,b;//全局变量
void main()
{
    printf("输入两个数:\n");
    scanf("%d,%d",&a,&b);
    swap(a,b);
    printf("输出两个数:\n");
    printf("%d,%d\n",a,b);   
}
这样不行,我试过了。在gcc version 4.2.0下。
2010-06-09 23:06
wylzjcw
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:185
专家分:174
注 册:2009-1-4
收藏
得分:0 
编译器有提示吗

勾股定理用相似三角形证明最合理
2010-06-09 23:09
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 2楼 wylzjcw
全局变量也不行啊
2010-06-09 23:14
wylzjcw
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:185
专家分:174
注 册:2009-1-4
收藏
得分:0 
不可能吧,把你的编译器错误信息发上来

勾股定理用相似三角形证明最合理
2010-06-09 23:16
NOMIPS
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:86
专家分:537
注 册:2010-3-31
收藏
得分:4 
#include<stdio.h>
int x,y;
void swap()
{
    int temp;
    /*
    x=x^y;
    y=x^y;
    x=x^y;
    */
    temp=x;
    x=y;
    y=temp;
}

int main()
{

    printf("输入两个数:\n");
    scanf("%d %d",&x,&y);
    swap(x,y);
    printf("输出两个数:\n");
    printf("%d,%d\n",x,y);
    return 0;
}
假如利用全局变量,要这样写才能实现。即不能利用形参的形式。
2010-06-09 23:41
wylzjcw
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:185
专家分:174
注 册:2009-1-4
收藏
得分:0 
是啊,犯了个错误,手头没编译器,没测试。

勾股定理用相似三角形证明最合理
2010-06-09 23:46
huxiangwenhu
Rank: 4
等 级:业余侠客
威 望:1
帖 子:191
专家分:262
注 册:2010-6-1
收藏
得分:0 
回复 7楼 NOMIPS
呵呵,先谢谢你,但是swap函数定义的时候没有参数,而主函数调用的时候又怎么能赋予它实参呢?它又怎么能实现互换的功能呢?
2010-06-10 22:17
张君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:57
专家分:113
注 册:2010-5-13
收藏
得分:0 
回复 7楼 NOMIPS
  /*
    x=x^y;
    y=x^y;
    x=x^y;
    */
什么意思??
我在turboc2 上用你的也没又打出来啊,没交换,其实我印象中全局变量的确可以交换,可是还是没打出来

做自己就好,保持自己,记得微笑
2010-06-11 12:29
快速回复:问一个非常迷茫的问题。。。
数据加载中...
 
   



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

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