Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183116
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 622
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-19 19:12
文章分类

全部博文(67)

分类: C/C++

2015-03-24 11:01:46

解法1、用大量的if else进行比较
解法2、将三个数放入数组进行排序,取第二个  
解法3、用两个变量,一个存储最大值一个存第二大
int f(itn a, int b, int c){
    int f, m;
    if(a>b){
        f = a; m = b;
    }
    else{
        f = b; m = a;
    }
    if(f>c){
        if(m     }
    else{
         m = f; f = c;
    }
    return m;
}

针对该特定问题,方法2中的排序做了无用功,
方法1和3差不多,但方法3更可取,因为具有普遍性,所有按某种顺序取第二个的问题,都可以此思路解决,比如在n个数中取第二大者,可以将n个数放入数组,f和m保存当前最大和第二大,遍历数组即可。


阅读(926) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~