A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© skywan 中级黑马   /  2015-7-20 10:10  /  761 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 skywan 于 2015-7-22 16:49 编辑

从键盘输入三个整数,找出最大值,并且输出。
传统的方法是写if……else的代码,依次比较,而现在看了三目运算直接可以用它来简化代码量。
传统的:
  1. int main(int argc,const char *argv)
  2. {
  3.         //定义三个整数
  4.         int a, b, c;
  5.         //定义中间最大值变量并初始化
  6.         int max = 0;
  7.         printf("请输入三个整数:");
  8.         scanf("%d,%d,%d",&a,&b,&c);
  9.         if (a > b)
  10.         {
  11.                 max = a;
  12.         }
  13.         else
  14.         {
  15.                 max = b;
  16.         }
  17.         if (max > c)
  18.         {
  19.                 max = max;
  20.         }
  21.         else
  22.         {
  23.                 max = c;
  24.         }
  25.         printf("最大值为%d", max);
  26.         return 0;
  27. }
复制代码

优化后的代码:
  1. int main(int argc,const char *argv)
  2. {
  3.         //定义三个整数
  4.         int a, b, c;
  5.         //定义中间最大值变量并初始化
  6.         int max = 0;
  7.         printf("请输入三个整数:");
  8.         scanf("%d,%d,%d",&a,&b,&c);
  9.         //a与b比较大小,取大值赋值给max
  10.         max = a > b ? a : b;
  11.         //max在与第三个数比较大小,取大值赋值给max
  12.         max = max > c ? max : c;
  13.         printf("最大值为%d", max);
  14.         return 0;
  15. }
复制代码

6 个回复

倒序浏览
这适用于要比较的变量数量少的,如果多的话,推荐快速排序
回复 使用道具 举报
狂甩你十八条街 发表于 2015-7-20 10:16
这适用于要比较的变量数量少的,如果多的话,推荐快速排序

这是比较简单的,当多了的话可以用数组选择for循环,采用冒泡或者就像你说的快速排序法。谢啦
回复 使用道具 举报
skywan 发表于 2015-7-20 11:31
这是比较简单的,当多了的话可以用数组选择for循环,采用冒泡或者就像你说的快速排序法。谢啦 ...

共同进步呗,嘿嘿。
回复 使用道具 举报
厉害!!!
回复 使用道具 举报
好棒!!!!!!
回复 使用道具 举报
很厉害!!!!!!!!!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马