| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:c语言里面一个简单的问题!自己不会,还望教一下!
只看楼主 加入收藏
周云
Rank: 1
等 级:新手上路
帖 子:46
专家分:2
注 册:2012-9-1
结帖率:76.92%
收藏
已结贴  问题点数:20 回复次数:9 
c语言里面一个简单的问题!自己不会,还望教一下!
有这么一道题,我自己尝试了很久了!始终没想出简单的方法做出来!自己编写了二三十条代码了!感觉这道题不需要这么长的!
题目是:排序:x,y,z!需要先输入,x,y,z!的值,然后按从小到大输出!
我是这么想的:想两两比较找出最小值,然后找出次小值,然后输出结果!我本来用的if语句,但是发现自己编写的程序好长,用了很多个if语句!似乎会分很多种情况似的!是不是我的想法错了!还望讲解一下!(C学得很不好,请不要嘲笑!)
搜索更多相关主题的帖子: c语言 
2012-09-05 09:48
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
把你的代码发出来,不耻下问,中国的古话了,别人笑笑又怎么了?你少了块肉?
2012-09-05 10:36
菜鸟qy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-9-4
收藏
得分:0 
#include<stdio.h>
int main()
{
    float x,y,z,t;
    scanf("%f,%f,%f",&x,&y,&z);
    if(x>y)
    t=x;x=y;y=t;//交换后x是x,y中的小者
    if(x>z)
    t=x;x=z;z=t;//交换后x是x,z中的小者
    if(y>z)
    t=y;y=z;z=t;//交换后y是y,z中的小者
    printf("%5.2f,%5.2f,%5.2f\n",x,y,z);
    return 0;
}
2012-09-05 14:14
Jorong88
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-9-4
收藏
得分:0 
代码呢
2012-09-05 14:41
张朝成
Rank: 4
等 级:业余侠客
帖 子:149
专家分:265
注 册:2012-3-22
收藏
得分:20 
以下是引用菜鸟qy在2012-9-5 14:14:29的发言:

#include
int main()
{
    float x,y,z,t;
    scanf("%f,%f,%f",&x,&y,&z);
    if(x>y)
    t=x;x=y;y=t;//交换后x是x,y中的小者
    if(x>z)
    t=x;x=z;z=t;//交换后x是x,z中的小者
    if(y>z)
    t=y;y=z;z=t;//交换后y是y,z中的小者
    printf("%5.2f,%5.2f,%5.2f\n",x,y,z);
    return 0;
}
#include<stdio.h>
 int main()
 {
     float x,y,z,t;
     scanf("%f,%f,%f",&x,&y,&z);
     if(x>y)

     t=x;x=y;y=t;
}//交换后x是x,y中的小者
     if(x>z)

     t=x;x=z;z=t;
}//交换后x是x,z中的小者
     if(y>z)

     t=y;y=z;z=t;
}//交换后y是y,z中的小者
     printf("%5.2f,%5.2f,%5.2f\n",x,y,z);
     return 0;
 } 应该是这样才对的吧。
2012-09-05 20:26
翼碎
Rank: 1
等 级:新手上路
帖 子:23
专家分:7
注 册:2012-9-5
收藏
得分:0 
两两比较就可以了

if(x>y)x与y交换
if(x>z)x与z交换
if(y>z)y与z交换
这样最后x<y<z,输出就可以了。

要是嫌交换部分每次都要写比较烦,可以用个函数,以指针做参数,然后调用就可以了。
2012-09-05 22:04
周云
Rank: 1
等 级:新手上路
帖 子:46
专家分:2
注 册:2012-9-1
收藏
得分:0 
回复 5楼 张朝成
其实我是这样想的,先从,X,Y,Z中选择最小的存在X中,然后再从Y,Z中,找出较小值存放于Y中!最后输出三个数!能不能帮个忙想想!
2012-09-08 19:47
秋小米
Rank: 2
等 级:论坛游民
帖 子:21
专家分:33
注 册:2012-9-9
收藏
得分:0 
可以用冒泡排序法:
程序代码:
#include <stdio.h>

int main(void)
{
    int x, y, z;
   
    printf("请输入3个数:\n");
    scanf("%d %d %d", &x, &y, &z);
   
    int t;
   
    if (x>y)
    {
        t = x;
        x = y;
        y = t;   
    }
   
    if (x>z)
    {
        t = x;
        x = z;
        z = t;
    }
   
    if (y>z)
    {
        t = y;
        y = z;
        z = t;
    }
   
    printf("这三个数从小到大排列顺序为:\n %d %d %d\n", x, y, z);
}
2012-09-09 11:33
p10290105
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-4-11
收藏
得分:0 
冒泡排序没有学过么?
#include <stdio.h>
main()
{
    char a[3] = {x,y,z}, t;
    int i, j;
    for ( i= 0; i < 3 ; i++ )
        for(j = 0 ;j < 2-i; j++)
            if(a[j+1] > a[j])
                {
                    t = a[j+1];
                    a[j+1] = a[j];
                    a[j] = a[t];
                }
    for( i = 0 ;i < 3; i++ )
        printf("%c",a[i]);
2012-09-09 14:46
痞子道
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-9-9
收藏
得分:0 
回复 楼主 周云
同求啊
2012-09-09 22:42
快速回复:c语言里面一个简单的问题!自己不会,还望教一下!
数据加载中...
 
   



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

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