学习目标:
学会简单方法求解输入三个数,按照从大到小的顺序排列
学习内容:
题目:
输入三个整数,按照从大到小的顺序排列
例如:
输入:1 2 3
输出:3 2 1
学习产出:
分析:
首先我们需要假设第一个值为最大的值 (这种思考方式也可以用于排序问题,适合一些少一点数的序列 )
第二,既然我们假设第一个值为最大值,但是如果第3个和第2个的值比第1个值都大,我们就将第2和第3个值与第一个值交换,所以我们这里用两个if语句来实现,而不能用if {} else if{},这样的话如果第一个成立第二个就不会执行。
最后交换完了选出第一个值为最大,再去比较一下第二和第三的值,得出第二大的值和第三大的值。最后运行没有错误,然后我们就会发现交换在三个中都有频繁出现所以我们可以定义一个外部函数swap来交换数值。
接下来上代码:
void swap(int* x, int* y)
{
int temp = 0;
temp = *x;
*x = *y;
*y = temp;
}
int main()
{
int a, b, c = 0;
scanf("%d%d%d",&a,&b,&c);
if (a < b)
{
swap(&a, &b);
}
if (a < c)
{
swap(&a,&c);
}
if (b < c)
{
swap(&b, &c);
}
printf("%d %d %d",a,b,c);
return 0;
}
这里交换函数具体参考小编前面函数学习:
【c语言函数学习,从入门到掌握 - CSDN App】链接: link
如本文案对各位读者有所帮助,双击点赞,后续题目及相关c语言知识小编会持续更新 |