对于三个数字进行排序,我们要类比之前我们学过的交换两个数字的方法。
程序 = 算法 + 语言,编写这个代码就需要考虑算法的过程,语言在之前交换两个数字已经学过。对于程序中或者用户来说,在计算机中输入三个数字a,b,c。
#include<stdio.h>
int main(void)
{
int a,b,c;
printf("请输入三个整数,中间用空格隔开:");
scanf("%d %d %d\n",&a,&b,&c);
//编写三个数字排序的代码
printf("%d %d %d\n",a,b,c);
return 0;
}
1.如果a > b则不需要调换a与b的位置。
1)若a > c,a与c的位置关系不需要调换,比较b与c的大小关系。若c > b调换b与c的位置关系。排序就是a,c,b。
2)若a < c,调换a与c的位置关系。排序就是c,b,a。
2.如果a < b则调换a与b的位置,
1)若a > c,则a与c不调换位置。排序就是b,a,c。
2)若a < c,则a与c的位置进行调换,然后比较b与c之间的大小关系。同理如上。
大致的思路就是如此。
#include<stdio.h>
int main(void)
{
int a,b,c,k;
printf("请输入三个整数(中间用空格隔开):");
scanf("%d %d %d",&a,&b,&c);
if(a < b)
k = a;
a = b;
b = k;
if(a < c)
k = a;
a = c;
c = k;
if(b < c)
k = b;
b = c;
c = k;
printf("%d %d %d\n", a, b, c);
}
我采用的软件是Visual C++ 6.0进行调试,本人正在学习c语言课程,如果有任何问题请在评论区留言,欢迎大家批评指正。