Упорядочить Одномерный Массив

Тема в разделе "MS Visual C++", создана пользователем NadezdaM, 25 дек 2012.

  1. NadezdaM

    NadezdaM Гость

    Подскажите, пожалуйста,товарищи программисты,
    как упорядочить по возрастанию в массиве кусок,который полностью совпадает с другим массивом.
    Код (C++):
    # include<iostream.h>
    const int n=4;
    const int m=2;
    void vvod( int x[n])// ввожу массив 1-ый
    {
    int i;
    for( i=0;i<n;i++)
    {
    cout<<"x["<<i<<"]=";
    cin>>x[i];
    }
    }
    /////////////////////////////////////
    void vvod1( int y[m])// // ввожу массив 2-ый
    {
    int j;
    for( j=0;j<m;j++)
    {
    cout<<"y["<<j<<"]=";
    cin>>y[j];
    }
    }
    /////////////////////////////////////////
    void show1(int y[n])//показываю массив 1-ый
    {
    int j;
    for(j=0;j<n;j++)
    {
    cout<<y[j]<<' ';
    }
    }
    ////////////////////////////////////////////
    void show2(int x[n])//показываю массив 2-ый
    {
    int i;
    for(i=0;i<n;i++)
    {
    cout<<x[i]<<' ';
    }
    }
    ////////////////////////////////////////
    bool EA(int x[n],int y[m])// проверяю есть и в 1-ом массиве 2-ой массив
    {
    bool b=false;
    for(int i=0;(i<=n-m)&&!b;i++)
    {
    bool b2=true;
    for(int j=0;j<m&&b2;j++)
    {
    if (x[i+j]!=y[j])
    b2=false;
    b=b2;
    }
    }
    return b;
    }
    ////////////////////////////////////////////////////
    void upor( int x[n],int y[m])//пытаюсь упорядочить
    {
    for(int i=0;i<n;i++)
    {
    for(int j=0;j<m;j++)
    if(x[i]==y[j])
    {
    for(int i=0;i<n-1;i++)
    for(int t=i+1;t<m;t++)
    if (x[i]>x[t])
    {
    int r=x[i];
    x[i]=x[t];
    x[t]=r;
    }
    }
    }
    }
    ///////////////////////////////////////////////////////////
    void main()
    {
    int a[n],b[m];
    cout<<"enter massiv x"<<endl;
    vvod(a);
    show1(a);
    cout<<"enter massiv y"<<endl;
    vvod1(b);
    show2(b);
    if (EA(a,b))
    {
    upor(a,b);
    show1(a);
    }
    else
    cout<<"massiv x and y ne sovpadayt";
    }
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    найди смещение по индексам
    т.е. какой индекс у первого и последнего элементов куска массива

    сортируй отдельный массив,а в месте где меняются местами элементы
    меняй местами и элементы куска,учитывая смещение по индексам
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    хм
    bool cmp(const int a, const int b)const { return a < b; }
    //...
    qsort(&a[idx], size, sizeof(int), cmp);

    тут idx - индекс, о котором говорит вятка, size - длина второго массива, a - первый массив
     
Загрузка...
Похожие Темы - Упорядочить Одномерный Массив
  1. PahaStar
    Ответов:
    0
    Просмотров:
    1.079
  2. vbnoob
    Ответов:
    1
    Просмотров:
    954
  3. LifeT
    Ответов:
    1
    Просмотров:
    1.208
  4. Crock95
    Ответов:
    0
    Просмотров:
    1.277
  5. Dexet
    Ответов:
    1
    Просмотров:
    1.392

Поделиться этой страницей