Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
GorduyChainik
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 11
1

Сложная сортировка одномерного массива

16.05.2018, 21:11. Просмотров 722. Ответов 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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <cstring>
#include <iostream>
 
using namespace std;
 
int main()
{
    int N,m,n,fac;
    cin>>N;
    int A[ N ];
    for (int i=0; i<N; i++)
        cin>>A[i];
 
    for (int j=0; j<N; j++)
        for (int i=0; i<N-1; i++)
            if (abs(A[i])>abs(A[i+1]))
                swap(A[i],A[i+1]);
 
 
    for (int i=0; i<N; i++)
        cout << A[i]<<' ';
        
        for (int i=0; i<N-1; i++){
            if (!(i%2==0) && A[i]<A[i+1]){
                for(m=1; m<i; m++){
                    fac=fac*m;
                    A[i]=fac;
                }
            }
            cout << A[i]<<' ';
        }
        
   return 0;
}
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2018, 21:11
Ответы с готовыми решениями:

Сортировка одномерного массива
Ка реализовать такой способ : &quot;из всех элементов массива выбрать наименьший и поставить его на...

Сортировка одномерного массива
Массив из 10 целых чисел заполнить случайными числами от -5 до 5. Произвести сортировку массива....

Сортировка одномерного массива
Люди!!!! Помогите студенту сдать гак. Надо упорядочить одномерный массив из вешественных...

Сортировка одномерного массива
Задача: сортировка одномерного массива методом выбора. #include &lt;iostream&gt; using namespace...

Сортировка одномерного массива
объясните пожалуйста алгоритм выполнения сортировки относительно компьютера(программы)

4
StudAssistant
Эксперт
34811 / 27003 / 5019
Регистрация: 17.04.2006
Сообщений: 49,622
16.05.2018, 21:11
Закажите контрольную, курсовую, диплом или любую другую студенческую работу здесь.
4
Elllik
2 / 2 / 2
Регистрация: 11.10.2016
Сообщений: 103
16.05.2018, 22:24 2
C++
1
2
3
4
cin >> N;
    int A[N];
    for (int i = 0; i<N; i++)
        cin >> A[i];
Вам нужно использовать динамический массив
C++
1
2
3
int *A = new int[N]; 
    for (int i = 0; i < N; i++) 
        cin >> A[i] ;
C++
1
if (!(i%2==0) && A[i]<A[i+1])
Ошибка синтаксиса. Нужно
C++
1
if (!(i%2==0) && (A[i]<A[i+1]))
Проверяйте, вроде бы правильно.
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
void print(int *A,int N)
{
    for (int i = 0; i < N; i++)
        cout << A[i] << ' ';
 
    cout << endl;
}
 
 
int fact(int N)
{
    if (N < 0) 
        return 0; 
    if (N == 0) 
        return 1; 
    else 
        return N * fact(N - 1); 
}
 
 
 
int main()
{
    int N;
    cout << "Input N: "; cin >> N;
 
    int *A = new int[N]; 
    for (int i = 0; i < N; i++) 
        cin >> A[i] ;
    
    cout << endl << "Array: " << endl;
    print(A, N);
 
    for (int j = 0; j < N; j++)
        for (int i = 0; i < N - 1; i++)
            if (abs(A[i]) > abs(A[i + 1]))
                swap(A[i], A[i + 1]);
 
    cout << endl << "Sort array: " << endl;
    print(A, N);
    
    for (int i = 1; i <= N ; i++) {
        if ((i % 2 != 0) && (A[i] < A[i + 1])) {
            A[i-1] = fact(i);
        }
    }
 
    cout << endl << "Reformed array: " << endl;
    print(A, N);
 
 
    system("pause");
    return 0;
}
1
Yetty
2187 / 1547 / 1069
Регистрация: 18.12.2017
Сообщений: 5,159
16.05.2018, 22:46 3
Elllik, работает, но результаты неверные:
Sort array:
0 2 2 3 3 3 4 -6 7 7 -10 -10
Reformed array:
0 2 2 3 120 3 5040 -6 7 7 39916800 -10

как вариант:
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
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, f;
    cout <<"Enter n: "; cin >>n;
 
    double*a = new double[n];
 
    for (int i = 0; i < n; i++)
      {
      a[i]=rand()%21 -10;
      cout <<a[i]<<" ";
      }
    cout <<endl;
    
    for (int i=0; i<n-1; i++)    
    for (int j=0; j<n-i-1; j++)        
      if (abs(a[j]) > abs(a[j+1])) 
      swap(a[j], a[j+1]);
      
    cout <<"Sort matrix:\n";  
     for (int i = 0; i < n; i++)      
      cout <<a[i]<<" ";
      cout <<endl;
      
    for (int i = 0; i < n; i+=2)  
    if (a[i]<a[i+1]) {
    f=1;    
    for(int j = 1; j <=i+1; j++)
    f*=j;
    a[i]=f;}
    
    cout <<"New matrix:\n";
    for (int i = 0; i < n; i++)      
      cout <<a[i]<<" ";      
    cout <<endl;  
    delete[]a;
system("pause");
return 0;
}
если нужен ввод с клавиатуры, замените рандом на ввод с клавиатуры
1
Elllik
2 / 2 / 2
Регистрация: 11.10.2016
Сообщений: 103
16.05.2018, 22:53 4
Цитата Сообщение от Yetty Посмотреть сообщение
Elllik, работает, но результаты неверные:
Sort array:
0 2 2 3 3 3 4 -6 7 7 -10 -10
Reformed array:
0 2 2 3 120 3 5040 -6 7 7 39916800 -10
Спасибо за поправку не учел -
1
Yetty
2187 / 1547 / 1069
Регистрация: 18.12.2017
Сообщений: 5,159
17.05.2018, 01:02 5
Лучший ответ Сообщение было отмечено GorduyChainik как решение

Решение

GorduyChainik, заметил ошибку в своём коде. исправьте строку 31 на такую:
C++
1
for (int i = 0; i < n-1; i+=2)
1
17.05.2018, 01:02
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2018, 01:02

Сортировка одномерного массива
Где ошибка? Нужно отсортировать элементы массива таким образом, чтобы сначала были размещены все...

Сортировка одномерного массива
Помогите, пожалуйста, разработать приложение сортировки одномерного массива! Может у кого есть...

Сортировка одномерного массива
Дан одномерный массив А, состоящий из N элементов. Отсортировать все его элементы а) улучшенным...


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

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

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