👤

Dintre numerele intregi "a, b, c, d, e" sa se selecteze maximul2 (numarul mai mic decat numarul maximal si mai mare decat celelalte numere) si minimul2 (numarul mai mare decat cel mai mic numar si mai mic decat restul).
Numerele se citesc apoi se fac operatii (cin>>a>>b>>c>>d>>e;).


Răspuns :

#include <iostream>
#include <limits.h>//pentru limitele intregi
using namespace std;

int main(){
    //2 minime si 2 maxime
    //maximele au valoarea cea mai mica a intregilor, orice numar intreg
    //este mai mare ca ele
    //minimele au valoarea maxima, deci orice numar intreg este mai mic ca ele
    int i,max1=INT_MIN,max2=INT_MIN,min1=INT_MAX,min2=INT_MAX;
    int a[5];
   
    for(i=0;i<5;i++){
        cin>>a[i];
    }
   
    for(i=0;i<5;i++){
        //daca numarul este mai mare decat maximul 1
        //inlocuieste atat maximul 1,
        //cat si da lui max2 fosta valoarea a lui max 1
        if(max1<a[i]){
            max2=max1;
            max1=a[i];
        }
        //daca numarul este intre max1 si max 2, atunci schimba doar max2
        else if(max2<a[i]){
            max2=a[i];
        }
        //acelasi rationament numai ca pentru mai mic
        if(min1>a[i]){
            min2=min1;
            min1=a[i];
        }
        else if(min2>a[i]){
            min2=a[i];
        }       
    }
    cout<<"Al doilea numar cel mai mic este: "<<min2<<endl;
    cout<<"Al doilea numar cel mai max este: "<<max2<<endl;
    return 0;
}


#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int n=5, a, b, c, d, e;
    cin>>a>>b>>c>>d>>e;
    int v[]={a,b,c,d,e};

    sort(v, v+n);
    int min2 = v[1], max2 = v[n-2];
}