Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kykyryza
0 / 0 / 0
Регистрация: 26.10.2009
Сообщений: 13
#1

Упорядочить элементы массива с четными индексами в порядке возрастания - C++

26.10.2009, 16:52. Просмотров 958. Ответов 12
Метки нет (Все метки)

Задан массив, содержащий N элементов. Упорядочить его элементы с четными индексами в порядке возрастания, а элементы с нечетными индексами в порядке убывания , помогите написать эту программу , если не сложно реализуйте на с++

Добавлено через 13 минут
очень прошу помочь , буду весьма благодарен
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2009, 16:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить элементы массива с четными индексами в порядке возрастания (C++):

Отсортировать элементы с четными индексами в порядке убывания, нечетные - возрастания - C++
На языке С. Дан массив а. Отсортировать в массиве А элементы так, чтобы элементы с четными индексами были рассортированы в порядке...

Упорядочить элементы массива в порядке возрастания - C++
a={-1.3;-2;0;0.5;1.9} Дан линейный массив. Упорядочить его элементы в порядке возрастания.

Упорядочить элементы массива в порядке возрастания, все элементы больше нуля увеличить в 3 раза - C++
Помогите пожалуйста Нужна прога: Есть массив X(n). Упорядочить его элементы в порядке возрастания, все элементы больше нуля...

Найти элементы массива с четными индексами - C++
Написал программу которая выводит элементы массива с ЧЕТНЫМИ индексами. int main(){ int mass; int n; cin>>n; for(int...

Вывести вначале элементы с четными номерами, а затем с нечетными (все в порядке возрастания) - C++
Здравствуйте, ув. програмисты.. Раньше меня этот форум выручал, и сейчас надеюсь выручит... Я уже встречал тут это задание... Но это...

Выведите все элементы массива с четными индексами - C++
Выведите все элементы массива с четными индексами (то есть A, A, A, ...). Формат входных данных В первой строке вводится количество...

12
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
26.10.2009, 17:47 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <algorithm>
#include <functional>
 
using namespace std;
 
#define N 11
 
// Задан массив, содержащий N элементов. Упорядочить его элементы с четными индексами в порядке возрастания, а элементы с нечетными индексами в порядке убывания , помогите написать эту программу , если не сложно реализуйте на с++
 
void main()
{ 
    int count=0;
    int arrayN[N]={100,1,2,3,4,5,6,7,8,9, 10};
    int *even = new int[N/2+N%2];
    int *odd  = new int[N/2];
 
    for (int i=0; i<N; i+=2)
    {
        even[count]=arrayN[i];
        odd[count++]=arrayN[i+1];
    }
    if (N%2) even[N/2]=arrayN[N-1];
 
    sort(even, even+N/2+N%2);
    sort(odd, odd+N/2, greater<int>());
  count=0;
    for (int i=0; i<N; i+=2)
    {
        arrayN[i]=even[count];
        arrayN[i+1]=odd[count++];
    }
    if (N%2) arrayN[N-1]=even[N/2];
 
    for (int i=0; i<N; i++)
        cout<<" "<<arrayN[i];
 
    cout<<endl; system("pause");
}
0
BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
26.10.2009, 17:48 #3
Сортированные элементы в другие массивы кидать?
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
26.10.2009, 18:01 #4
тоже тока с функцией

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <algorithm>
#include <functional>
 
using namespace std;
 
// Упорядочить его элементы с четными индексами в порядке возрастания,
// а элементы с нечетными индексами в порядке убывания 
 
template<class T>
void Sort_EvenUp_OddDown(T arr[], int n)
{ 
    int count=0;
    T *even = new T[n/2+n%2];
    T *odd  = new T[n/2];
 
    for (int i=0; i<n; i+=2)
    {
            even[count]=arr[i];
            odd[count++]=arr[i+1];
    }
    if (n%2) even[n/2]=arr[n-1];
    
    sort(even, even+n/2+n%2);
    sort(odd, odd+n/2, greater<T>());
    count=0;
    for (int i=0; i<n; i+=2)
    {
        arr[i]=even[count];
        arr[i+1]=odd[count++];
    }
    if (n%2) arr[n-1]=even[n/2];    
}
 
void main()
{ 
    int arrayN[ ]={100,1,2,3,4,5,6,7,8,9, 10};
    int count = sizeof(arrayN)/sizeof(int);
    
    Sort_EvenUp_OddDown(arrayN, count);
 
    for (int i=0; i<count; i++)
        cout<<" "<<arrayN[i];
 
    cout<<endl; system("pause");
}
0
kykyryza
0 / 0 / 0
Регистрация: 26.10.2009
Сообщений: 13
26.10.2009, 18:26  [ТС] #5
Tant спасибо тебе огромное . только у меня к тебе есть одна просьба , мы такие операторы не проходили и бибилиотеки типа #include <algorithm>
#include <functional>
вообще не видели , можно реализовать на просто языке c++ щас скину пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include<iostream.h>
#include<conio.h>
void main()
{const n=6;
 double a[n],t;
 int i,k;
 clrscr();
 cout<<"vvedute massuv a[i]\n";
 for(i=0;i<n;i++)
  {
   cout<<"a["<<i+1<<"]=";
   cin>>a[i];
  }
 cout<<"usxodnuu massuv a[i]= ";
 for(i=0;i<n;i++)
   cout<<a[i]<<" ";
 for(k=1;k<=n;k=k+2)
  for(i=k+2;i<=n;i=i+2)
   if(a[k]>a[i])
     {
       t=a[k];
       a[k]=a[i];
       a[i]=t;
     }
 for(k=0;k<=(n-1);k=k+2)
 for(i=k+2;i<=(n-1);i=i+2)
   if(a[k]<a[i])
     {
       t=a[k];
       a[k]=a[i];
       a[i]=t;
  }
cout<<"\nkone4nuu massuv a[i]= ";
 for(i=0;i<n;i++)
   cout<<a[i]<<" ";
 getch();
}
Добавлено через 44 секунды
вот в этом духе , пжлста , буду признателен

Добавлено через 1 минуту
коммпилятор у нас dev c++
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
26.10.2009, 19:16 #6
Чорт, я тут штудирую STL, жду ехидных коментариев от Rififi, а вам треба на "просто языке С++"
щас попробуем

Добавлено через 23 минуты
ввод сами переделаете как у вас в примере если так надо, неизвестные библиотеки я убрал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream.h>
 
using namespace std;
 
#define UP      true
#define DOWN    false
 
// Упорядочить его элементы с четными индексами в порядке возрастания,
// а элементы с нечетными индексами в порядке убывания 
 
// сортировка пузырком взято с ФАК 
// [url]http://www.cyberforum.ru/cpp-beginners/thread27084.html[/url]
template<class T>
void bubbleSort(T a[], long size, bool up_down) {
    long i, j;
    T x;
 
    for( i=0; i < size; i++) 
    {            // i - номер прохода
        for( j = size-1; j > i; j-- ) 
        {     // внутренний цикл прохода
            if(up_down==UP) 
            { 
                if ( a[j-1] > a[j] )
                    {       x=a[j-1]; a[j-1]=a[j]; a[j]=x; }
          }
            else
            {
                if ( a[j-1] < a[j] )
                {       x=a[j-1]; a[j-1]=a[j]; a[j]=x;      }
          } 
        }
    }
}
 
template<class T>
void Sort_EvenUp_OddDown(T arr[], int n)
{ 
    int count=0;
    T *even = new T[n/2+n%2];
    T *odd  = new T[n/2];
 
    for (int i=0; i<n; i+=2)
    {
        even[count]=arr[i];
        odd[count++]=arr[i+1];
    }
    if (n%2) even[n/2]=arr[n-1];
 
    bubbleSort(even,n/2+n%2, UP);
    bubbleSort(odd, n/2, DOWN);
 
    count=0;
    for (int i=0; i<n; i+=2)
    {
        arr[i]=even[count];
        arr[i+1]=odd[count++];
    }
    if (n%2) arr[n-1]=even[n/2];    
}
 
void main()
{ 
    int arrayN[ ]={10,9,2,3,4,7,8,5,10,9, 10};
    int count = sizeof(arrayN)/sizeof(int);
    
    Sort_EvenUp_OddDown(arrayN, count);
 
    for (int i=0; i<count; i++)
        cout<<" "<<arrayN[i];
 
    cout<<endl; system("pause");
}
0
kykyryza
0 / 0 / 0
Регистрация: 26.10.2009
Сообщений: 13
27.10.2009, 14:13  [ТС] #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
cout<<"usxodnuu massuv a[i]= ";
 for(i=0;i<n;i++)
   cout<<a[i]<<" ";
 for(k=1;k<=n;k=k+2)
  for(i=k+2;i<=n;i=i+2)
   if(a[k]>a[i])
     {
       t=a[k];
       a[k]=a[i];
       a[i]=t;
     }
 for(k=0;k<=(n-1);k=k+2)
 for(i=k+2;i<=(n-1);i=i+2)
   if(a[k]<a[i])
     {
       t=a[k];
       a[k]=a[i];
       a[i]=t;
  }
cout<<"\nkone4nuu massuv a[i]= ";
 for(i=0;i<n;i++)
   cout<<a[i]<<" ";
 getch();
}
Тант , извини за наглость , но мы таких сложных операторов не проходили , и к тому же требуеться отсортировать ОДНОМЕРНЫЙ массив , можешь сделать как напримере выше который в этом сообщениее , пжлста , завтра сдавать уже надо
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
27.10.2009, 14:19 #8
kykyryza, помойму в 5 посте ты сам выложил решение своей задачи)
0
mamedovvms
2918 / 839 / 93
Регистрация: 30.04.2009
Сообщений: 2,633
27.10.2009, 14:20 #9
C++
1
2
3
4
5
6
7
8
9
упорядочиваем на четных
for (int i=0;i<n-2;i+=2)
 for (int j=i+2;j<n;j+=2)
   if (a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}
 
Упорядочиваем на нечетных
for (int i=1;i<n-2;i+=2)
 for (int j=i+2;j<n;j+=2)
   if (a[i]<a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}
0
kykyryza
0 / 0 / 0
Регистрация: 26.10.2009
Сообщений: 13
27.10.2009, 15:50  [ТС] #10
kykyryza, помойму в 5 посте ты сам выложил решение своей задачи)
Казак к сожелению она не рабочая , её надо либо исправить , либо написать новую , ну главноебез сложных операторов , помогите чем сможете

Добавлено через 1 час 13 минут
помогите плиз
0
kykyryza
0 / 0 / 0
Регистрация: 26.10.2009
Сообщений: 13
27.10.2009, 19:39  [ТС] #11
народ выручите плиз?!
0
valeriikozlov
Эксперт С++
4674 / 2500 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.10.2009, 19:58 #12
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я ведь помню, писал же ведь подобное совсем недавно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream.h>
#include <process.h>
#include <windows.h>
 
int main ()
{
    int *mas, i, j, temp, temp1, n;     
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå êîëè÷åñòâî ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ*: "<< endl;
    cin>>n;
    mas=new int[n];
    cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*: "<< endl;
    for(i=0; i<n; i++)
       {
        cout<<"["<<i<<"]=";
        cin>>mas[i];
       }          
    cout<<"ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў: "<<endl;
    for(i=0; i<n; i++)
        cout<<mas[i]<<"  ";
    cout<<endl;
    for(i=0;i<n-2;i+=2)
    {
       temp=i;
       for(j=i+2; j<n; j+=2)
           if(mas[temp]>mas[j])
           {
              temp1=mas[temp];
              mas[temp]=mas[j];
              mas[j]=temp1;
           }
    }
    for(i=1;i<n-1;i+=2)
    {
         temp=i;
         for(j=i+2; j<n; j+=2)
            if(mas[temp]<mas[j])
            {
                temp1=mas[temp];
                mas[temp]=mas[j];
                mas[j]=temp1;
            }
    }
    cout<<"ÎòñîðòèðîâГ*Г*Г*ûé Г¬Г*Г±Г±ГЁГў"<<endl;
    for(i=0; i<n; i++) 
        cout<<mas[i]<<"  ";
    cout<<endl;        
    system("pause");
    return 0; 
}
1
kykyryza
0 / 0 / 0
Регистрация: 26.10.2009
Сообщений: 13
27.10.2009, 20:15  [ТС] #13
благодарствую тебя , ты меня выручил
0
27.10.2009, 20:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2009, 20:15
Привет! Вот еще темы с ответами:

Увеличить элементы массива с четными индексами на 1, а с нечетными - на 2 - C++
Доброго всем времени суток! Возникли затруднения с парой задач на массивы. 1. В одномерном массиве увеличить элементы с четными...

Удалить все элементы массива с четными индексами - C++
Всем привет. Хотелось бы получить от вас помощь..написать программу си++.. создать динамический одномерный массив,содержащий x числовых...

Вывести элементы массива с четными/нечетными индексами - C++
3. Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2 индексами, а затем — с нечетными1|четными2.

Поменять местами элементы массива с четными и нечетными индексами - C++
//Дан массив целых чисел. Воспользовавшись указателями, //поменяйте местами элементы массива с четными и нечетными индексами //(т.е. те...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.