描述:
输入三个数,按从大到小的方式输出这三个数.
思路:
刚开始学习C语言时没有那么多的比较大小且排序的函数的知识,有兴趣的可以去搜索几个排序方式. 本题用数组加两层循环的方式实行起来较为简单.想要挑战自己的可以设置三个变量来进行排序.用三个变量来排序的时候要画图,充分考虑他们的大小关系,但显着很麻烦.
本题在使用两层循环的时候,设外层为i,内层为j进行循环.对于两个数的交换通过临时变量来解决即可.对于条件的写法,比如,输入arr[0], arr[1], arr[2]分别为1,2,3, i = 0时让arr[i] = 1, 接下来 arr[j] = 2,交换,所以让j 每次都比i 大1即可.同时,i 最大不能超过2,否则会造成j越界.对于j,不超过3即可.代码如下:
#include<stdio.h>
int main(void)
{
int arr[3] = { 0 };
for(int i = 0; i < 3; i++)
{
scanf("%d", &arr[i]);
}
for(int i = 0; i < 2; i++)
{
for(int j = i + 1; j < 3; j++)
{
if(arr[i] < arr[j])
{
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
for(int i = 0; i < 3; i++)
{
printf("%d ", arr[i]);
}
return 0;
}