2 / 2 / 0
Регистрация: 14.07.2012
Сообщений: 28
1

Упорядочить элементы массива по убыванию

18.07.2012, 21:16. Показов 2988. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
упорядочить элементы массива по убыванию.......написал программу ....зависает и выключается после ввода массива
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
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main ()
{      setlocale(LC_ALL,"Russian");
 
int number;
cout << "Èç ñêîëüêè ýëåìåíòîâ äîëæåí ñîñòîÿòü ìàññèâ??\n";
cin >> number;
int i=0;
int mass[i];
for( int i=0; i<number; i++)
{ cout << "ââåäèòå" <<" " <<i+1 <<" " << "ýëåìåíò ìàññèâà \n";
   cin >> mass[i];};
   //âûâîä ñòàðîãî ìàññèâà
cout <<"âîò 'ñòàðûé' ìàññèâ\n"<<"{  " ;
i=0;
for(int i=0;i<number;i++)
   {cout<< mass[i] <<"  ";};
cout<< "}\n"; 
// óïîðÿä÷èòü ïî âîçðàñòàíèþ ýëåìåíòû ìàññèâà
i=0;
int zamena=0;
for(int i=0;i<number;i++)
{ 
              if(mass[i]>mass[++i])
              {zamena=mass[i];
               mass[i]=mass[++i];
               mass[++i]=zamena;
               }
};
//âûâîä íîâîãî ìàññèâà
cout <<"âîò 'íîâûé' ìàññèâ\n"<<"{  " ;
i=0;
for(int i=0;i<number;i++)
   {cout<<mass[i]<<"  ";};
cout<< "}\n";                     
               
system("pause"); 
return 0;              
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2012, 21:16
Ответы с готовыми решениями:

В одномерном массиве все отрицательные элементы заменить нулями и упорядочить элементы массива по убыванию
В одновимірному масиві всі від’ємні елементи замінити нулями і впорядкувати елементи масиву за...

Упорядочить элементы массива по убыванию
Массив А (n и m вводятся с клавиатуры), заполнить случайными числами. Выполнить следующие...

Упорядочить элементы массива по убыванию
В одномерном массиве, состоящем из n действительных элементов, найдите 3) упорядочение элементы...

Упорядочить элементы массива по убыванию
В одномерном массиве,состоящем из n вещественных элементов,вычислить: 1)Сумму элементов...

12
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
18.07.2012, 21:20 2
может надо написать
C++
1
 int mass[number];
0
2 / 2 / 0
Регистрация: 14.07.2012
Сообщений: 28
18.07.2012, 21:26  [ТС] 3
нет ... number это число элементов массива которое вводится с клавы

Добавлено через 2 минуты
кое что изменил....прога работает.... но расставляет по порядкку только по парам 1 и 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
40
41
42
43
44
45
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main ()
{      setlocale(LC_ALL,"Russian");
 
int number;
cout << "Èç ñêîëüêè ýëåìåíòîâ äîëæåí ñîñòîÿòü ìàññèâ??\n";
cin >> number;
int i=0;
int mass[i];
for( int i=0; i<number; i++)
{ cout << "ââåäèòå" <<" " <<i+1 <<" " << "ýëåìåíò ìàññèâà \n";
   cin >> mass[i];};
   //âûâîä ñòàðîãî ìàññèâà
cout <<"âîò 'ñòàðûé' ìàññèâ\n"<<"{  " ;
i=0;
for(int i=0;i<number;i++)
   {cout<< mass[i] <<"  ";};
cout<< "}\n"; 
// óïîðÿä÷èòü ïî âîçðàñòàíèþ ýëåìåíòû ìàññèâà
i=0;
int zamena=0;
for(int i=0;i<number;i++)
{ 
              if(mass[i]>mass[++i])
              {zamena=mass[i];
               mass[i]=mass[++i];
               i--;
               mass[++i]=zamena;
               i--;
               }
};
//âûâîä íîâîãî ìàññèâà
cout <<"âîò 'íîâûé' ìàññèâ\n"<<"{  " ;
i=0;
for(int i=0;i<number;i++)
   {cout<<mass[i]<<"  ";};
cout<< "}\n";                     
               
system("pause"); 
return 0;              
}
0
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
18.07.2012, 21:36 4
да. поэтому надо выделить столько элементов массива. А как у Вас, выделяется 0 элементов

Добавлено через 2 минуты
для справки не надо писать так
C++
1
2
i=0;
for(int i=0;i<number;i++)
пишите так
C++
1
for( i=0;i<number;i++)
Добавлено через 7 минут
что у Вас за компилятор такой, что эта программа даже запускается у Вас..
0
2 / 2 / 0
Регистрация: 14.07.2012
Сообщений: 28
18.07.2012, 21:36  [ТС] 5
ничего не поменялось......сравниваются только парами
0
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
18.07.2012, 21:54 6
логически неправильно написана сортировка

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for ( i = 0; i < number-1; i ++ )
 
  for ( int j = number-2; j >= i; j -- )
 
      if ( mass[j] > mass[j+1] )
 
        {
 
        zamena = mass[j]; mass[j] = mass[j+1];
 
        mass[j+1] = c;
 
        }
вот например простая сортировка пузырьком
0
2 / 2 / 0
Регистрация: 14.07.2012
Сообщений: 28
19.07.2012, 00:46  [ТС] 7
а можно пару коментариев????
что за массив j ???
0
Эксперт С++
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
19.07.2012, 01:02 8
Цитата Сообщение от max_oops Посмотреть сообщение
что за массив j ???
Где вы здесь массив j увидели?
Про пузырек вот здесь хотя бы почитайте: http://algolist.manual.ru/sort/bubble_sort.php
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
19.07.2012, 03:28 9
На сортировку, если честно, не похоже. Вот тебе сортировочка (большие массивы задавать не рекомендую):
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 <cstdlib>
#include <iterator>
 
template <class Iterator>
bool sorted(Iterator beg, Iterator end)
{
    Iterator curr, next;
 
    if(beg == end)
        return true;
 
    for(curr = beg, next = curr + 1; next != end; curr = next++)
        if(*curr < *next)
            return false;
    return true;
}
 
// Bogosort - ultimate sorting algorithm!
template <class Iterator>
void bogosort(Iterator beg, Iterator end)
{
    while(!sorted(beg, end))
        std::random_shuffle(beg, end);
}
 
int main()
{
    const size_t array_size = 5;
    int arr[array_size];
    
    srand((size_t) time(NULL));
    for(size_t i = 0; i < array_size; ++i)
        arr[i] = rand() % 10;
 
    std::cout << "Before sorting: " << std::endl;
    std::copy(arr, arr + array_size, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
 
    bogosort(arr, arr + array_size);
 
    std::cout << "After sorting: " << std::endl;
    std::copy(arr, arr + array_size, std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
}
А если серьезно, то смотри в сторону std::sort. Ну или смотри Алгоритмы сортировок, там все уже разжевано
2
2 / 2 / 0
Регистрация: 14.07.2012
Сообщений: 28
19.07.2012, 20:05  [ТС] 10
Всем большое спасибо .....с пузырьком разобрался.

но небольшая проблема: когда вводишь большой массив ( даже 9 элементов) программа виснет.
компилятор DEV C++
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
19.07.2012, 20:36 11
Цитата Сообщение от max_oops Посмотреть сообщение
Всем большое спасибо .....с пузырьком разобрался.

но небольшая проблема: когда вводишь большой массив ( даже 9 элементов) программа виснет.
компилятор DEV C++
Я все-таки не понимаю, почему у тебя массив задается так :
C++
1
2
int i=0;
int mass[i];
Массив из нуля элементов? А затем идет считывание от 0 до number-1?
Делай так :
C++
1
int *mass = new int[number]; // тогда получится массив из number-элементов
В твоем случае идет обращение к невыделенной !заранее! памяти, из-за чего могут быть ошибки (как ты говоришь при 9 элементах) при обращении к другим элементам.
По сути, конструкция :
C++
1
2
int a[10];
a[1000000] = 10;
Позволительна и отработает, но вот вопрос что она испортит в памяти
0
0 / 0 / 3
Регистрация: 30.09.2013
Сообщений: 45
29.11.2013, 14:45 12
а можно это записать на языке дельфи?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
29.11.2013, 14:46 13
Можно.
0
29.11.2013, 14:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2013, 14:46
Помогаю со студенческими работами здесь

Упорядочить элементы массива Z по убыванию
Помогите решить пожалуйста.Можно с коментариями, просто недавно начал учить. Задача Сгенерировать...

Упорядочить элементы массива по убыванию
УКР Дано масив з N речовинних чисел. Упорядкувати елементи масиву за спаданням. Визначити суму...

Найти минимальный и максимальный элементы массива и упорядочить элементы по убыванию, стоящие между ними, методом «пузырька».
Привет ВСЕМ!!! Обратите вниминие на эту задачку, ПЛЗ!!! =) Можно и без метода &quot; пузырька&quot;!!! Дан...

Упорядочить элементы каждого столбца массива по убыванию
Дано задачку: Дано двумерный массив знаковых целых чисел FAM 1. Упорядочить элементы каждого...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru