0
点赞
收藏
分享

微信扫一扫

C语言实例_6之比较三个整数的大小

斗米 2024-11-24 阅读 8

1. 题目

输入三个整数 x、y、z,请把这三个数由小到大输出。

2. 分析

步骤1:比较x和y,若x>y,则互换x和y的值;现在是x<y; 步骤2:比较x和z,若x>z,则互换x和z的值;现在是x<z; 步骤3:比较y和z,若y>z,则互换y和z的值;现在是y<z; 经过步骤1、2、3,可得出x<y<z。

3. 代码实例

#include <stdio.h>

int main()
{
int x = 0, y = 0, z = 0, t = 0;
printf(\n请输入三个数字:\n);
scanf(%d%d%d,

if ( x > y ) {
// 交换x,y的值,如果不大于,则不交换
t = x;
x = y;
y = t;
}

if ( x > z ) {
// 交换x,z的值,如果不大于,则不交换
t = z;
z = x;
x = t;
}

if ( y > z ) {
// 交换y,z的值,如果不大于,则不交换
t = y;
y = z;
z = t;
}

printf(排序: %d %d %d\n,x,y,z);
}

4. 代码实例2,可以将交换封装成一个函数

// 交换两个变量的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 调用
if ( x > y ) {
// 交换x,y的值,如果不大于,则不交换
swap(x, y);
}

5. 代码实例3,可以用三目运算符

  1. 先比较x和y的最小值temp,然后和z比较,得出min;
  2. 再比较x和y的最大值temp,然后和z比较,得出max;
  3. x+y+z-min-max得出中间值。
#include<stdio.h>
int main(void)
{
int x, y, z, temp, min, max;
printf(请输入三个数字:\n);
scanf(%d%d%d,
temp = x < y ? x : y;
min = temp < z ? temp : z;
temp = x > y ? x : y;
max = temp > z ? temp : z;
printf(排序:);
printf(%d%3d%3d,min, x + y + z - min - max, max);
return 0;
}

事业要悄悄地干,干不成就当没干过

举报

相关推荐

0 条评论