c语言,输入3个数,按从大到小的顺序输出,要用三种方法

如题所述

1、
#include <stdio.h>
int main()
{
int a,b,c,t;
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);
return 0;
}
2、冒泡排序
#include <stdio.h>
int main()
{
int i,j,t;
int a[3];
for ( i = 0; i < 3; i++ )
{
scanf("%d",&a[i]);
}
for ( j = 0; j < 2; j++ )
{
for ( i = 0; i < 2 - j; i++ )
{
if ( a[i] < a[i+1] )
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
}
}
for ( i = 0; i < 3; i++ )
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
3、选择排序
#include<stdio.h>
#define M 3
void main()
{
 int b[M],i,j,t,k;
 for(i=0;i<M;i++)
  scanf("%d",&b[i]);
 for(i=0;i<M-1;i++)
 {
 k=i;
  for(j=i+1;j<M;j++)
   if(b[k]<b[j])
    k=j;
   if(i!=k)
   {
    t=b[i];
    b[i]=b[k];
    b[k]=t;
   }
 }
   for(i=0;i<M;i++)
    printf("%d ",b[i]);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-25

#include <stdio.h>
int main()
{int a,b,c,t;
 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\n",a,b,c);
 return 0;
}

第2个回答  2018-08-25
楼下有个人回答正确了,我写一个使用数组做的:
#include<stdio.h>
void main(){
int num[3],temp,i,j;
for(i=0;i<3;i++){
printf("请输入第%d个数:",(i+1));
scanf("%d",&num[i]);
}
for(i=0;i<3;i++){
for(j=0;j<2-i;j++){
if(num[j]<num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
for(i=0;i<3;i++){
printf("%d\t",num[i]);
}
printf("\n");
}
第3个回答  2007-11-07
#include "stdio.h"
main()
{
int a,b,c,t;
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);

}
第4个回答  2019-04-01
#include<stdio.h>
main()
{
float a,b,c,A,B,C;
scanf("%f%f%f",&a,&b,&c);
if(a>b&&a>c&&b>c)
{
A=a;
B=b;
C=c;
}
else if(a>b&a>c&&c>b)
{
A=a;
B=c;
C=b;
}
else if(b>a&&b>c&&a>c)
{
A=b;
B=a;
C=c;
}
else if(b>a&&b>c&&c>a)
{
A=b;
B=c;
C=a;
}
else if(c>a&&c>b&&a>b)
{
A=c;
B=a
C=b;
}
else if(c>a&&c>b&&b>a)
{
A=c;
B=b;
C=a;
}
printf("%f,%f,%f",A,B,C);
}



相似回答