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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]);

参考技术A

#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;

参考技术B 楼下有个人回答正确了,我写一个使用数组做的:
#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");
参考技术C #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);

参考技术D #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);



用C语言实现:将三个数按从大到小输出。

这个题目用编程来实现非常简单,由于我在上一篇博客中已经介绍过使用“冒泡排序”的方法。

所以我在这里直接给出使用“冒泡排序”写出的代码:

#include<stdio.h>
int main()
{
    int arr[] = { 456,789,123 };
    int i, j, t;
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j<2 - i; j++)
        {
            if (arr[j]<arr[j + 1])
            {
                t = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = t;
            }
        }
    }
    for (i = 0; i < 3; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\\n");
    system("pause");
    return 0;
}

由于本题数据个数非常少,我们也可以用最简单的if语句进行交换两值的内容来进行大小排序。

在上上篇博客中我也介绍过如何进行两数内容的交换。

代码如下:

int main()
{
    int a = 456, b = 789, c = 123, temp;
    if (a < b)
    {
        temp = a;
        a = b;
        b = temp;
    }
    if (a < c)
    {
        temp = a;
        a = c;
        c = temp;
    }
    if (b < c)
    {
        temp = b;
        b = c;
        c = temp;
    }
    printf("%d %d %d\\n", a, b, c);
    system("pause");
    return 0;
}

当然编程的方法并不止这么两种,具体的排序方法还有很多,例如:堆排序、快排等等。

其他的排序方法等我复习到算法时会继续为大家更新的。

最后附上本次程序的运行结果:

技术分享

以上是关于c语言,输入3个数,按从大到小的顺序输出,要用三种方法的主要内容,如果未能解决你的问题,请参考以下文章

c语言解答从键盘上输入三个数,按从大到小的顺序排列并输出最大值

C语言采用选择法对数组元素按从大到小的顺序排列

c语言任意输入5个数,并按从大到小顺序输出

c语言:利用指针变量,用函数实现将3个整数按从大到小的顺序输出

c语言编程: 将一组数按从大到小的顺序排序

输入三个数字,按从大到小的顺序输出