Главная » 2020 » Февраль » 21 » Массив. Сдвиг между Max, Min,
10:32
Массив. Сдвиг между Max, Min,

#include <iostream>
#include <ctime>
using namespace std;
void vvod(int *x, int m);
void vivod(int *x, int m);
int max(int *x, int m);
int min(int *x, int m);
int nomer(int *x, int m, int chislo);
void sdvig_vlevo(int *x, int m);
void sdvig_vlevo_MaxMin(int *x, int m);
void sdvig_vpravo(int *x, int m);
int main(){
    srand(time(0));
    const int n=10;
    int a[n];
    vvod(a,n); 
    vivod(a,n);
    sdvig_vlevo_MaxMin(a,n);
    //sdvig_vpravo(a,n);
    //sdvig_vlevo(a,n);
    vivod(a,n);
    system("pause");
    return 0; 
}
void sdvig_vlevo_MaxMin(int *x, int m)
{
    int n1,n2,vrem;
    n1=nomer(x,m,max(x,m));
    n2=nomer(x,m,min(x,m));
    if (n1>n2) {vrem=n1; n1=n2; n2=vrem;}

    int temp=x[n1];
    for (int i=n1;i<n2;i++)
        x[i]=x[i+1];
    x[n2]=temp;
}
void sdvig_vpravo(int *x, int m)
{
    int temp=x[m-1];
    for (int i=m-1;i>0;i--)
        x[i]=x[i-1];
    x[0]=temp;
}
void sdvig_vlevo(int *x, int m)
{
    int temp=x[0];
    for (int i=0;i<m-1;i++)
        x[i]=x[i+1];
    x[m-1]=temp;
}
int nomer(int *x, int m, int chislo)
{
    int n=0;
    for (int i=0;i<m;i++)
        if (x[i]==chislo)
        {
            n=i; break;
        }
    return n;
}
int min(int *x, int m){
    int MIN=x[0];
    for (int i=0;i<m;i++)
        if (x[i]<MIN) MIN=x[i];
    return MIN;
}
int max(int *x, int m){
    int MAX=x[0];
    for (int i=0;i<m;i++)
        if (x[i]>MAX) MAX=x[i];
    return MAX;
}
void vvod(int *x, int m)
{
    for (int i=0;i<m;i++) x[i]=rand()%90+10;
}
void vivod(int *x, int m)
{
    for (int i=0;i<m;i++) cout<<x[i]<<" ";
    cout<<endl;
}

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