编程任务编号 O: 五人列队
任务描述
五个战士按照身高从矮到高列成一队。
给定5个整数,表示5个战士的身高,请按身高排序。当然可能有两人的身高相同。
输入
五个整数,表示5个战士的身高。
输出
从小到大排列的5个数。
输入举例
173 172 175 172 174
输出举例
172 172 173 174 175
注意事项
有很多种方法实现上述5个数排序任务。下面提供的思路仅供初学者参考!
可分成4趟。
第一趟:用第1个数与其余的4个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样5个数中的最小值一定放在第1个变量中了。
第二趟:用第2个数与其余的3个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样4个数中的最小值一定放在第2个变量中了。
第三趟:用第3个数与其余的2个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样3个数中的最小值一定放在第3个变量中了。
第四趟:用第4个数与其余的1个数比较,如果发现其中有某个数比它小,则交换这2个数的值。这样2个数中的最小值一定放在第4个变量中了。剩下在最后一个变中的值一定是最小值了。
这样有序结果就依次保存在这5个变量中,依次输出即可。
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
int i, j, temp,nums[6];
for(i=0; i<5; i++)
{
scanf("%d",&nums[i]);
}
for(i=0; i<4; i++)
{
for(j=0; j<4-i; j++)
{
if(nums[j] > nums[j+1])
{
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
for(i=0; i<5; i++)
{
printf("%d ",nums[i]);
}
}