Главная » 2019 » Февраль » 26 » Нахождение максимума из минимумов и наоборот
08:40
Нахождение максимума из минимумов и наоборот

#include <iostream>
#include <ctime>
using namespace std;
void vvod(int *x, int k);
void vvod2(int *x, int k);
void vivod(int *x, int k);
int min1(int *x, int k);
int max1(int *x, int k);
int max2(int *x, int k);
int max3(int *x, int k);
int min2(int *x, int k);
int min3(int *x, int k);
int pn(int *x, int k, int b);
int main()
{

//    denjes2@yandex.ru
//  Тема: Ф.И. 1 курс 4 группа


    const int n=24, m=8;
    int *a=new int[n];
    int *b=new int[m];
    vvod2(a,n);
    cout<<"Massive A:"<<endl;
    vivod(a,n);
    int index=0;
    for (int i=0;i<m;i++)
    {
        b[i]=min1(&a[index],n/m);
        index+=n/m;
    }
    cout<<"Massive B (min):"<<endl;
    vivod(b,m);
    cout<<"max="<<max1(b,m)<<endl;
    cout<<endl;

    index=0;
    for (int i=0;i<m;i++)
    {
        b[i]=max1(&a[index],n/m);
        index+=n/m;
    }
    cout<<"Massive B (max):"<<endl;
    vivod(b,m);
    cout<<"min="<<min1(b,m)<<endl;
    delete a,b;
    system("pause");
}
int pn(int *x, int k, int b)
{
    int ib=-1;
    for (int i=0;i<k;i++)
        if (x[i]==b) ib=i;
    return ib;
}
int max3(int *x, int k)
{
    int m1=max1(x,k);
    int m2=max2(x,k);
    int m3;
    int i=0;
    while ((x[i]==m1) || (x[i]==m2))
        i++;
    m3=x[i];
    for (int i=0;i<k;i++)
        if ((x[i]<m1)&&(x[i]<m2)&&(x[i]>m3)) m3=x[i];
    return m3;
}
int min3(int *x, int k)
{
    int m1=min1(x,k);
    int m2=min2(x,k);
    int m3;
    int i=0;
    while ((x[i]==m1) || (x[i]==m2))
        i++;
    m3=x[i];
    for (int i=0;i<k;i++)
        if ((x[i]>m1)&&(x[i]>m2)&&(x[i]<m3)) m3=x[i];
    return m3;
}
int max2(int *x, int k)
{
    int m1=max1(x,k),m2;
    int i=0;
    while (x[i]==m1)
        i++;
    m2=x[i];
    for (int i=0;i<k;i++)
        if ((x[i]<m1)&&(x[i]>m2)) m2=x[i];
    return m2;
}
int min2(int *x, int k)
{
    int m1=min1(x,k),m2;
    int i=0;
    while (x[i]==m1)
        i++;
    m2=x[i];
    for (int i=0;i<k;i++)
        if ((x[i]>m1)&&(x[i]<m2)) m2=x[i];
    return m2;
}
int min1(int *x, int k)
{
    int m=x[0];
    for (int i=0;i<k;i++)
        if (x[i]<m) m=x[i];
    return m;
}
int max1(int *x, int k)
{
    int m=x[0];
    for (int i=0;i<k;i++)
        if (x[i]>m) m=x[i];
    return m;
}
void vvod2(int *x, int k)
{
    srand(time(0));
    for (int i=0;i<k;i++) x[i]=rand()%90+10;
}
void vvod(int *x, int k)
{
    for (int i=0;i<k;i++) cin>>x[i];
}
void vivod(int *x, int k)
{
    for (int i=0;i<k;i++) cout <<x[i]<<" ";
    cout<<endl;
}

Просмотров: 279 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar