返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

三个数比较大小问题


大家好,我有一个问题想问一下各位高手,有3个数比较大小,让它从大到小输出





redsky9919 [ 1 楼 ]
2004-02-29 23:37:00
#include "Stdio.h"
#include "Conio.h"

main()
{
int *i,j,k,n,m,s; int a[3];
  i=a;
printf("input a number: ");
  for(i=a;i<=a+2;i++)
scanf("%d",i);
  i=a;
for(j=0;j<=2;j++)
    {for(k=0;k<=2;k++)
       {if(*(i+j)<*(i+k))
        n=*(i+j);
        if(*(i+j)>*(i+k))
        m=*(i+j);


        }

    }
    i=a;
    for(j=0;j<=2;j++)
    {if(*(i+j)!=m&&*(i+j)!=n)
    s=*(i+j);  }
    printf("%d%d%d",m,s,n);
getch();
}
仅仅适合于3个数的比较! 

advance [ 2 楼 ]
2004-03-01 09:08:00
#include <stdio.h>
main()
{
     int a,b,c,t;
     printf("input a,b,c:");
     scanf("%d%d%d",&a,&b,&c);
     if(a<b)
       {t=a;a=b;b=t;}
     if(a<c)
       {t=a;a=c;c=t;}
     if(b<c)
       {t=b;b=c;c=t;}
     printf("%d%d%d",a,b,c);
}
这个程序怎么样?望大虾指点。
我是tc初学者,以后还有很多问题要向大家请教,在此先谢谢了。

        

aking [ 3 楼 ]
2004-03-01 12:30:00
#include <stdio.h>
main()
{
     int a,b,c,t;
     printf("input a,b,c:");
     scanf("%d%d%d",&a,&b,&c);
     if(a<b)
       {t=a;a=b;b=t;} * 将a、b做比较,实现a、b互换 *
     if(a<c)
       {t=a;a=c;c=t;} * 将a、c做比较,实现a、c互换,这是实现了最小的放入a中 *
     if(b<c)           
       {t=b;b=c;c=t;} *将b、c做比较,实现b、c互换 此时已排好了大小顺序*
     printf("%d%d%d",a,b,c);
 

advance [ 4 楼 ]
2004-03-01 12:40:00
3楼的兄弟,第10行注释应该是“实现了把最大的数放在a中”吧。 

空气 [ 5 楼 ]
2004-03-01 15:38:00
同意4楼的说法  3楼的好象是打错字了  :) 

radio [ 6 楼 ]
2004-03-01 19:38:00
一楼的同志:
  你的代码什么意思?
   

www82621677 [ 7 楼 ]
2004-03-01 20:13:00
怎么说那。各位编写的程序比较3个数还可一
但是要比较多个那怎么做啊;
我试编写一个比较多个数的程序/.没有编译请自己编译把
fun(int a,int b,int c .....int d)   在这里形式参数是可以有很多个。我就做几
                                      个演示一下 .形式参数是 a b c d

{  int k,l,r,x,v[MAX];   在这里的MAX可以是一个宏定义的最大数
   
   v[0]=a;v[1]=b;v[2]=c;v[3]=d;   要是比较的数多的还还可以继续负值
   for(k=0;k<4;k++)   在这里的4要看你比较的数的个数决定了
   {l=k;                                                                 
        for(r=k+1;r<4;r++)                                         
           if(v[r]>v[k]l=r;                                              
        x=v[0];v[0]=v[l];v[l]=x;                     
    }              这个循环是将所有的数从大到小的排列在数组当中
  }     
        在输出的时候只要一个循环就可以了      
 

redsky9919 [ 8 楼 ]
2004-03-01 23:58:00
答6楼
一楼的同志:
  你的代码什么意思?
  找出最大的,找出最小的!在去掉最大和最小的!所以我在下面著名了这只是用于3个筛骨的查找!
呵呵我是菜菜!
大家不要笑我!