先写好main函数、头文件
#include
int main()
{return 0;
}
调用scanf()函数,输入三个整数
#include
int main()
{ int a = 0,b = 0,c = 0; //创建一个变量就给他初始化是个好习惯scanf("%d %d %d",&a,&b,&c);return 0;
}
前提我让a存这三个数中的最大值,c存最小值,b存剩下的那个
思路:a、b、c依次比较
a和b比较,如果a比b大,那就不用管a和b了;如果a比b小,就要把a、b的值交换,看下面这段代码
if(a < b)
{ a = b;b = a;
}
这样显然是错的,因为上面这两个表达式执行时,(假设输入a = 1,b = 5)a = b,把b的值赋给a,此时a = 5。继续执行b = a,会发现b还是5。
就好比两个杯子a、b分别装的红酒和橙汁,现在我想让杯子a装橙汁,b装红酒,那肯定要借助第三个杯子tem,让b里的橙汁先倒入tem,再将a中的红酒倒入b,最后把tem中的橙汁倒入a,问题就解决了~
因此,可以这样写:
if(a < b)
{ int tem = b; b = a;a = tem
}
这样,输入的前两个数中,大的那个就赋给了a,小的那个赋给了b
要使a中存三个数中最大的那个,a b比较完了就要比较a c了
如果a > c,就不需要操作
如果a < c,跟上面同理
if(a < c)
{ int tem = c; c = a;a = tem;
}
经过step1和step2,a中已经存了这三个数中最大的那个
接下来只需要让c是剩下那俩数中较小的内个
if (b < c)
{ int tem = b;b = c;c = tem;
}
把上面三部分合起来,再依次print出a、b、c的值,排序就完成了
#include
int main()
{ int a = 0,b = 0,c = 0; scanf("%d %d %d",&a,&b,&c);if(a < b){ int tem = b; b = a;a = tem}if(a < c){ int tem = c; c = a;a = tem;}if (b < c){ int tem = b;b = c;c = tem;}//最后abc按顺序输出即可printf("%d %d %d \n",a,b,c);return 0;
}
下一篇:【夜读】影响一生的五大定律