题目:随意输入数字,进行从小到大排序。
代码如下:
#include
int main()
{
int x, y, z, m;
printf(“请输入三个整数:”);
scanf(“%d %d %d\n”, &x, &y, &z);
if (x > y) {
m = x;
x = y;
y = m;
}
if (x > z) {
m = x;
x = z;
z = m;
}
if (y > z) {
m = y;
y = z;
z = m;
}
printf(“从小到大顺序:%d %d %d\n”, x, y, z);
return 0;
}
运行结果
针对以上我们可以发现,每一个if判断中都是重复的进行赋值运算,我们想要优化,可以封装一个函数来进行,主函数中只需要调用封装函数就行。
#include
int main()
{
void swap();
int x, y, z;
printf(“请输入三个数字:”);
scanf(“%d %d %d\n”, &x, &y, &z);
if (x > y) {
swap(&x,&y);
}
if (x > z) {
swap(&x,&z);
}
if (y > z) {
swap(&y,&z);
}
printf(“从小到大排序:%d %d %d”, x, y, z);
}
void swap(int *a, int *b) {
int t;
t = *a;
*a = *b;
*b = t;
}