| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2668 人关注过本帖
标题:将三个数按照降序排列,那里错了?
只看楼主 加入收藏
lfaohxb
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-10-24
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:10 
将三个数按照降序排列,那里错了?
#include<stdio.h>
void max(int a,int b,int c)
{
int temp;
    if(a>b)
    {
    temp=b;
    b=a;
    a=temp;
    }
    if(a>c)
    {
        temp=c;
        c=a;
        a=temp;
    }
    if(b>c)
    {
        temp=c;
        c=b;
        b=temp;
    }
}

main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    max(a,b,c);
    printf("%d,%d,%d",a,b,c);
}

搜索更多相关主题的帖子: 排列 
2009-11-09 20:41
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:2 
函数数不包含主函数里的变量,你的程序只是要子函数里进行排序了,并不会影响主函数的变量的值,可通过传递变量的地址来实现你想要的功能
程序代码:
#include<stdio.h>
void max(int &a,int &b,int &c)
{
int temp;
    if(*a>*b)
    {
    temp=*b;
    *b=*a;
    *a=temp;
    }
    if(*a>*c)
    {
        temp=*c;
        *c=*a;
        *a=temp;
    }
    if(*b>*c)
    {
        temp=*c;
        *c=*b;
        *b=temp;
    }
}

main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    max(&a,&b,&c);
    printf("%d,%d,%d",a,b,c);
}
2009-11-09 20:48
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
收藏
得分:2 
void max(int *a,int *b,int *c)

QQ群:96348241
2009-11-09 20:53
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
程序代码:
#include<stdio.h>
void max(int *a,int *b,int *c)   //  严重失误···不好意思
{
int temp;
    if(*a>*b)
    {
    temp=*b;
    *b=*a;
    *a=temp;
    }
    if(*a>*c)
    {
        temp=*c;
        *c=*a;
        *a=temp;
    }
    if(*b>*c)
    {
        temp=*c;
        *c=*b;
        *b=temp;
    }
}

main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    max(&a,&b,&c);
    printf("%d,%d,%d",a,b,c);
}
2009-11-09 20:54
吕伟
Rank: 2
等 级:论坛游民
帖 子:86
专家分:44
注 册:2009-3-7
收藏
得分:2 
我试了好多遍,那个好像不是程序的错误,应该是编译器那里的问题,楼上那些只能说是换了一种方法对问题进行求解。。实际运行出来了再说了,弄好了,给我发写正确的解决办法了,谢谢
2009-11-09 21:36
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:2 
我是这么理解的,你的子函数的形参是三个int型数据,这里abc做函数的形参时,是不能通过调用子函数来改变实参的值的。
也就是说,以变量名做形参的时候,只能有一个返回值。并且不能通过改变形参的值来改变实参的值。
2009-11-09 22:07
lfaohxb
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-10-24
收藏
得分:0 
#include<stdio.h>
void max(int a,int b,int c)
{
int temp;
    if(a>b)
    {
    temp=b;
    b=a;
    a=temp;
    }
    if(a>c)
    {
        temp=c;
        c=a;
        a=temp;
    }
    if(b>c)
    {
        temp=c;
        c=b;
        b=temp;
    }
    printf("%d,%d,%d",a,b,c);
}

main()
{
    int a,b,c;
    scanf("%d,%d,%d",&a,&b,&c);
    max(a,b,c);
   
}
2009-11-09 22:07
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
收藏
得分:0 
回复 6楼 m456m654
支持 6楼,
 5楼的奉劝你还是多看看书。

QQ群:96348241
2009-11-09 22:08
yangsail
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2008-9-12
收藏
得分:2 
这个是教科书里指出的最基本的错误例子,,建议多看看谭浩强的书,,里面有这个错误举例并加以说明的。。
2009-11-10 13:08
lixingxing52
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:31
专家分:33
注 册:2009-11-2
收藏
得分:2 

支持 6楼,
5楼的奉劝你还是多看看书

新手上路,请多帮助。谢谢!
2009-11-10 13:13
快速回复:将三个数按照降序排列,那里错了?
数据加载中...
 
   



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

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