| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11921 人关注过本帖
标题:用C语言编写四个数求排序,用if编的逻辑现在真晕了
只看楼主 加入收藏
fense0321
Rank: 1
等 级:新手上路
帖 子:32
专家分:5
注 册:2011-9-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
用C语言编写四个数求排序,用if编的逻辑现在真晕了
用scanf输入a.b.c.d.四个数字,然后按从大到小排序,我用if编到一半就逻辑彻底乱了,求高手指点下,拜谢!
搜索更多相关主题的帖子: C语言 
2011-09-17 18:51
fense0321
Rank: 1
等 级:新手上路
帖 子:32
专家分:5
注 册:2011-9-7
收藏
得分:0 
求大侠指点

人生如流水,星云是那么的触不可及!
2011-09-17 18:52
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分:15 
初学吧,用if确实比较难,以后学到循环和数组就好办了。冒泡法。
int i,a[4],t,j;
for(i=0;i<4;i++)
scanf("%d",&a[i]);
t=a[0];
for(i=0;i<3;i++)              //4个数比较3轮
for(j=0;j<3-i;j++)            //第i轮比较3-i次
if(a[j]<a[j+1])              //大数放前
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
2011-09-17 19:05
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
用if排序 不晕才怪

                                         
===========深入<----------------->浅出============
2011-09-17 19:18
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
首先声明一下我不是什么大侠,也是一个刚入学c语言的新手:
关于c中的if语句的用法本人认为应该记住if怎么和else进行配对,以及他们的隶属关系。
例如://为避免用过多的if语句所以在此处仅比较3个数的大小。
# include<stdio.h>
int mian()
{
   int t;
   int a,b,c;
   printf("please input 4 num.\n");
   scanf("%d,%d,%d,%d",&a,&b,&c);
   if(a<b)            
     {t=a;a=b;b=t;}
   else
      if(a<c)
       {t=a;a=c;c=t;}
      else                   //else与上一个还没有配对的if配对。   
        if(b<c)
          {t=b;b=c;c=t;}    //此处省略一个else语句。
   printf("%d,%d,%d",a,b,c);
   return 0;
}      
     
2011-09-17 19:46
fense0321
Rank: 1
等 级:新手上路
帖 子:32
专家分:5
注 册:2011-9-7
收藏
得分:0 
刚学到,所以想要试下能不能编程,结果编的差点把电脑撇了,

人生如流水,星云是那么的触不可及!
2011-09-17 19:46
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
没事,只要多看看书,多上机,多注意点关于指针的问题,一般不会有什么大问题的。继续努力!!
2011-09-17 20:00
鸿飞冥冥
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2011-8-14
收藏
得分:5 
我也是新手一个,,我来试试,,用最笨的方法
程序代码:
#include<stdio.h>
void main()
{
    int a,b,c,d,t;                /*定义四个数abcd为整型,t为交换时要用的变量*/
    printf("请输入四个数:");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    if(a<b)                       /*下面三个if语句把最大的数放到a里面*/
    {
        t=a;a=b;b=t;
    }
    if(a<c)
    {
        t=a;a=c;c=t;
    }
    if(a<d)
    {
        t=a,a=d;d=t;
    }
    if(b<c)                       /*下面两个if语句是把第二大的数放到b里面*/
    {
        t=b;b=c;c=t;
    }
    if(b<d)
    {
        t=b;b=d;d=t;
    }
    if(c<d)                        /*这个if语句是把第三大的数放到c里面,最小的数放到d里面*/
    {
        t=c;c=d;d=t;
    }
    printf("四个数从大到小依次为:\n%5d%5d%5d%5d\n",a,b,c,d);
}

Sickcat
2011-09-17 20:07
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
用冒泡排序法
2011-09-17 20:31
lin471306489
Rank: 4
等 级:业余侠客
帖 子:136
专家分:247
注 册:2011-8-16
收藏
得分:0 
冒泡排序
2011-09-18 16:42
快速回复:用C语言编写四个数求排序,用if编的逻辑现在真晕了
数据加载中...
 
   



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

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