C++蓝桥等考导学/五级:分支结构进阶/之三:运算符优先级(19三个数的比较(2))

一、观看视频

01】求最大值最小值【02】拆位求最值

03】中间体重

二、研读学生讲义

【学生讲义】01】求最大值最小值【学生讲义】02】拆位求最值

【学生讲义】【03】中间体重

三、练习题(不清楚回头查看有关视频或讲义)

01】求三个整数的最大最小值。下面的代码哪个是多分支法,哪个是打雷法?

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<iostream>using namespace std;int main(){    int a, b, c;    cin >> a >> b >> c;    int maxn = a;    int minn = a;    if( maxn < b){      maxn = b;  }    if( maxn < c){      maxn = c;  }  if( minn > b){    minn = b;  }  if( minn > c){    minn = c;  }  cout << maxn << "  " << minn << endl;        return 0;}

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<iostream>using namespace std;int main(){    int a, b, c, maxn, minn;    cin >> a >> b >> c;    if( a > b && a > c){      maxn = a;  }else    if( b > c){      maxn = b;    }else{      maxn = c;  }  if( a < b && a < c)minn = a;  else if( b < c){    minn = b;  }else{    minn = c;  }    cout << maxn << "  " << minn << endl;        return 0;}

02】输入每位数字都不相同的三位正整数,找出数位上最大的数字。下面哪个代码是多分支法,哪个是打雷法?

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<iostream>using namespace std;int main(){    int n;    cin >> n;    int n1 = n / 100;    int n2 = n / 10 % 10;    int n3 = n % 10;    if( n1 > n2 && n1 > n3){      cout << n1 << endl;  }else if( n2 > n3){      cout << n2 << endl;    }else{      cout << n3 << endl;  }        return 0;}

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<iostream>using namespace std;int main(){    int n;    cin >> n;    int n1 = n / 100;    int n2 = n / 10 % 10;    int n3 = n % 10;    int maxn = n1;    if( maxn < n2){      maxn = n2;  }  if( maxn < n3){      maxn = n3;    }    cout << maxn << endl;        return 0;}

03】找出三个实数的中间值。下面代码正确的是(可多选):

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<iostream>using namespace std;int main(){    double w1, w2, w3;    cin >> w1 >> w2 >> w3;    double minn = w1;    if( minn > w2){      minn = w2;  }  if( minn > w3){      minn = w3;    }    double maxn = w1;    if( maxn < w2){      maxn = w2;  }  if( maxn < w3){      maxn = w3;    }    double middle = w1 + w2 + w3 - minn - maxn;    cout << middle << endl;        return 0;}

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<iostream>using namespace std;int main(){    double w1, w2, w3;    cin >> w1 >> w2 >> w3;    if(w1 > w2 && w1 < w3)cout << w1 << endl;    else if(w2 < w3)cout << w2 << endl;    else cout << w3 << endl;     return 0;}

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

#include<iostream>using namespace std;int main(){    double w1, w2, w3, middle;    cin >> w1 >> w2 >> w3;       if(w1 > w2 && w1 < w3){      middle = w1;  }else if(w2 < w3){    middle = w2;  }else{    middle = w3;  }  cout << middle << endl;  return 0;}

04】OpenJudge练习
OpenJudge-1.4-15】最大数输出
OpenJudge-1.4-17】判断闰年