| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1210 人关注过本帖
标题:输入a,b,c 3个整数,按大小顺序输出
只看楼主 加入收藏
小莞
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2014-1-30
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
输入a,b,c 3个整数,按大小顺序输出
#include<stdio.h>

int main(void)
{
    void swap(int *p1,int *p2);

    int a,b,c,*q1,*q2,*q3;

    printf("input 3 numbers:\n");
    scanf("%d,%d,%d",&a,&b,&c);

    q1=&a;
    q2=&b;
    q3=&c;

    if(*q1<*q2)swap(q1,q2);
    if(*q2<*q3)swap(q2,q3);
    if(*q1<*q3)swap(q1,q3);

    printf("%d,%d,%d",*q1,*q2,*q3);

    return 0;
}
void swap(int *p1,int *p2)
{
    int t;

    t=*p1;
    *p1=*p2;
    *p2=t;
}
为什么不对啊??
输出结果:
input 3 numbers:
4,2,9
4,-858993460,-858993460Press any key to continue
搜索更多相关主题的帖子: include numbers return 
2014-01-30 12:03
理工斌哥
Rank: 1
等 级:新手上路
帖 子:8
专家分:4
注 册:2014-1-30
收藏
得分:1 
你好,我用VS 2010编译了一下,结果虽不会出现你的情况,我的结果是4,9,2,但这明显有问题。从你第一个选择句看出,应是从大到小排序。第一、二个选择句可以将最小项放至最后,但无法确定前两项的关系,而第三句没解决这个问题。所以,第三句应是if(*q1<*q3) swap(q1,q3);。
2014-01-30 21:34
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
干嘛要把问题复杂化...   自己晕自己

三十年河东,三十年河西,莫欺少年穷!
2014-01-31 13:20
小莞
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2014-1-30
收藏
得分:0 
回复 3楼 韶志
没办法呀,书上题目要求的。。帮我看看哪里错了吧。。。
2014-02-01 18:55
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:2 
程序代码:
#include<stdio.h>

void swap(int *p1, int *p2);

int main(void)
{

    int a, b, c, *q1, *q2, *q3;

    printf("input 3 numbers:\n");
    scanf("%d,%d,%d", &a, &b, &c);

    q1 = &a;
    q2 = &b;
    q3 = &c;

    if(*q1 < *q2)
        swap(q1, q2);
    if(*q2 < *q3)
        swap(q2, q3);
    if(*q1 < *q2)
        swap(q1, q2);

    printf("%d,%d,%d", *q1, *q2, *q3);

    return 0;
}

void swap(int *p1, int *p2)
{
    int t;

    t = *p1;
    *p1 = *p2;
    *p2 = t;
}


逻辑有问题 还有就是函数声明还是放在主函数外面比较好看
2014-02-01 19:58
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:2 
4,2,9你输入时用的是中文的标点符号。用英文的","逗号就不会有问题了。英文逗号",",中文逗号”,“。
2014-02-02 09:56
快速回复:输入a,b,c 3个整数,按大小顺序输出
数据加载中...
 
   



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

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