您的位置:首页 > 其它

分支结构 -- 2015/09/23

2015-09-24 22:12 281 查看
/**
*  输入三个数,用两种方法打印出中间值(即第二大值) 提示:第一种,先求最大最小;第二种,只使用条件运算符
*/

int a = 0;
int b = 0;
int c = 0;
//  int  result = 0;
printf("输入三个数:");
scanf("%d,%d,%d", &a, &b, &c);
//  result = ( a > b) ? ( a < c ? a : ( b > c ? b : c ) ): ( b < c ? b : ( a > c ? a : c ));
//  printf("中间值为%d", result);
if ((a > b && a < c) || (a < b && a > c)) {
printf("中间值为%d", a);
} else if ((b > a && b < c) || (b < a && b > c)) {
printf("中间值为%d", b);
} else {
printf("中间值为%d", c);
}

/*
int nums[3];
printf("输入三个数:\n");
for (int i = 0; i < 3; i++) {
scanf("%d", &nums[i]);
}
for (int i = 0; i < 2; i ++) {
for (int j =  0; j < 2; j ++) {
if (nums[j] > nums[j + 1]) {
int t = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = t;
}
}
}
printf("中间值为%d", nums[1]);
*/


注意:(条件表达式)

在三个数中输出中间值时,使用条件表达式:

result = ( a > b) ? ( a < c ? a : ( b > c ? b : c ) ): ( b < c ? b : ( a > c ? a : c ));

分析::

首先,判断a 和 b 的大小,

if(a>b)==>再判断a 和 c==>if(a<c)==>c>a>b

|=>if(a>c)==>比较b 和c 的值

if(b>a)==>再判断b 和 c==>if(b<c)==>c>b>a

|=>if(b>c)==>比较a 和c 的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: