| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1094 人关注过本帖
标题:求助,简单的比较大小,然后输出
只看楼主 加入收藏
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:11 
求助,简单的比较大小,然后输出
先看一段简单的代码:输入3个数,然后按从小到大的顺序输出。
//cong xiao dao da pai xu
#include <stdio.h>
void main()
{
    int a,b,c;
    int temp;
    scanf("a=%d,b=%d,c=%d",&a,&b,&c);
    if(a>b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    if(b>c)
    {
        temp=b;
        b=c;
        c=temp;
    }
    if(a>b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    printf("a=%d,b=%d,c=%d\n",a,b,c);
}
这样的话,比如说,输入:a=1,b=6,c=3  就会输出:a=1.b=3,c=6。而我想输出,a=1,c=3,b=6.
代码应该怎么写,感觉很简单,就是写不出来,求大家帮忙
搜索更多相关主题的帖子: 输出 
2010-08-17 16:34
燕强
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:188
注 册:2010-8-11
收藏
得分:0 
学习。没时间了

[ 本帖最后由 燕强 于 2010-8-17 17:18 编辑 ]
2010-08-17 17:10
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
收藏
得分:0 
输出不太正确
2010-08-17 17:19
a279742336
Rank: 2
等 级:论坛游民
帖 子:36
专家分:24
注 册:2010-7-20
收藏
得分:0 
main()
{
    int a,b,c,n;
    printf("输入三个数:");
    scanf("%d %d %d",&a,&b,&c);
    if(a>b)
    n=a;a=b;b=n;
    if(a>c)
    n=a;a=c;c=n;
    if(b>c)
    n=b;b=c;c=n;
    printf("%d>%d>%d\n",a,b,c);
}
2010-08-17 17:42
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:10 
你想按照你的意思输出你的结果,就要在printf函数里对应的调整位置。
你排序的函数其实已经修改了a,b,c的值,而你在输出时却还是要用a,b,c输出原来的值当然是不可能的。
最好用数组,找出下表最大和最小的值就是了。
#include <stdio.h>

int main()
{
    int a[3];
    int maxj,minj,midj,max,mid,min;
    int j = 0;

    printf("please enter three number:\n");
    scanf("%d%d%d",&a[0],&a[1],&a[2]);
    max = min = a[0];
    maxj =minj = 0;
    for(j = 0; j < 3; j++)
    {
        if(max < a[j])
        {   
            maxj = j;
            max = a[j];
        }

        if(min > a[j])
        {
            min = a[j];
            minj = j;
        }
    }
    midj = 3-maxj-minj;
    mid = a[0] + a[1] + a[2] - min - max;

    printf("original: a[0]=%d,a[1]=%d,a[2]=%d\n",a[0],a[1],a[2]);
    printf("changed: a[%d]=%d,a[%d]=%d,a[%d]=%d\n",minj,min,midj,mid,maxj,max);

    return 0;
}
2010-08-17 18:34
真我
Rank: 4
等 级:业余侠客
威 望:1
帖 子:146
专家分:210
注 册:2010-7-14
收藏
得分:0 
本人初学,也试做一个,LZ你看看
#include <stdio.h>
#include <conio.h>
void main()
{
    int a,b,c;
    int min,mid,max;
    scanf("%d %d %d",&a,&b,&c);
    printf("a=%d,b=%d,c=%d\n",a,b,c);
    if(a<b&&a<c)
    {
        min=a;
        if(b<c)
        {
            mid=b;
            max=c;
        }
        else
        {
            mid=c;
            max=b;
        }
    }
    else if(a<b&&a>c)
    {
        mid=a;
        max=b;
        min=c;
    }
    else if(a>b&&a<c)
    {
        min=b;
        mid=a;
        max=c;
    }
    else if(a>b&&a>c)
    {
        max=a;
        if(b>c)
        {
            mid=b;
            min=c;
        }
        else
        {
            min=b;
            mid=c;
        }
    }
    printf("a=%d,b=%d,c=%d",min,mid,max);
    getch();
}
2010-08-17 22:39
真我
Rank: 4
等 级:业余侠客
威 望:1
帖 子:146
专家分:210
注 册:2010-7-14
收藏
得分:0 
我晕! printf("a=%d,b=%d,c=%d\n",a,b,c);
这能输出a=3,c=5,b=6这样的排列吗
2010-08-17 22:52
真我
Rank: 4
等 级:业余侠客
威 望:1
帖 子:146
专家分:210
注 册:2010-7-14
收藏
得分:0 
只有当做字符串才有可能这样输出了,
也就是a=3做一个字符串
2010-08-17 22:54
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
收藏
得分:0 
5楼是我想要的
2010-08-18 07:57
燕强
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:188
注 册:2010-8-11
收藏
得分:0 
我感觉用结构体方便,,,它包含一个字符、一个数字,,
比较大小时,就交换一个结构,这样输出时,字符跟数字就是成对输出的。
2010-08-18 10:02
快速回复:求助,简单的比较大小,然后输出
数据加载中...
 
   



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

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