这是洛谷分支结构题单的一题,题面自己去洛谷搜题号吧。
这道题用到了排序算法,由于题目已经限制了abc的数据量大小,最大只到三位数而已,所以就没有必要使用快排堆排这种比较复杂的排序算法了,我们直接使用最简单的冒泡排序。
冒泡排序(C++):
#include <stdio.h>
int sort(int* nums, int quantity)
{
for (int i = 0; i < quantity-1; i++) {
// 遍历每一对数
for (int j = 0; j < quantity-1-i; j++) {
// 如果前一个数大于后一个数,则互相交换位置
if(nums[j] > nums[j+1]) {
// 三变量法交换变量值
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
return 0;
}
记得后面要加上return 0;
因为没有返回值的话洛谷评测机不会继续运行,会爆TLE(我第一次提交的时候就忘记写返回值了qvq)
全部代码如下(C):
/*
Author: Kozumi
Github: @Xuyang1638
Blog: http://www.cnblogs.com/kozumi/
*/
#include <stdio.h>
int sort(int* nums, int quantity)
{
for (int i = 0; i < quantity-1; i++) {
// 遍历每一对数
for (int j = 0; j < quantity-1-i; j++) {
// 如果前一个数大于后一个数,则互相交换位置
if(nums[j] > nums[j+1]) {
// 三变量法交换变量值
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
return 0;
}
int main(void)
{
// 获取输入
int num[3];
// 其实可以用循环,但是懒得写了,直接copy吧
scanf("%d", &num[0]);
scanf("%d", &num[1]);
scanf("%d", &num[2]);
sort(num, 3);
printf("%d %d %d
", num[0], num[1], num[2]);
// 别忘了返回值
return 0;
}