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语言解答从键盘上输入三个数,按从大到小的顺序排列并输出最大值