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

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

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

Сортировка по убыванию с использованием указателя - C++

03.03.2013, 18:29. Просмотров 309. Ответов 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
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
74
75
76
#include<iostream>
#include <math.h>
#include<stdlib.h>
#include <ctime>
#include <algorithm>
#include <functional> 
#include <cstdlib>
using namespace std;
 
void sum(int *mass, int numberMass);
void (*sumFunction)(int*, int);   
void mnogabs(int*mass, int numberMass);
int *findMax( int *mass, int numberMass );
 
 
int main()
{
    int numberMass;
    int i;
cout<<"Vvedite razmernost massiva: ";
cin>>numberMass;
int*mass=new int[numberMass];//Объявляем динамический массив mass размерностью numberMass
 srand(time(0));
    for (int* elementMass = mass, i = 0; elementMass < mass + numberMass; ++elementMass, ++i) 
    {
        *elementMass = ((rand() % 10) < 5) ? (rand() % 101) : -(rand() % 101);
        cout << *elementMass<<endl;
    }
    sumFunction = sum;
    sumFunction(mass, numberMass);
    sumFunction = mnogabs;
    sumFunction(mass, numberMass);
    
return 0;
}
 
void sum(int *mass, int numberMass)
{
   int sum=0;
  for (int* elementMass = mass, i = 0; elementMass < mass + numberMass; ++elementMass, ++i) 
       if(*elementMass>0)
           sum+=*elementMass;
   cout<<"Summa = "<<sum<<endl;
}
 
void mnogabs(int*mass, int numberMass)
{
    int maxElement=abs(mass[0]),minElement=abs(mass[0]), maxIndex=0, minIndex=0, umnog=1;
     for (int* elementMass = mass, i = 0; elementMass < mass + numberMass; ++elementMass, ++i) 
     {
     if(abs(*elementMass)>maxElement)
     {
         maxElement = abs(*elementMass);
         maxIndex=i;
     }
     if(abs(*elementMass)<minElement)
      {
         minElement=abs(*elementMass);
         minIndex=i;
      }
     }
    if(maxIndex<minIndex)
    {
        int temp = minIndex;
        minIndex = maxIndex;
        maxIndex = temp;
    }
    for (int* elementMass = mass, i = 0; elementMass < mass + numberMass; ++elementMass, ++i) 
    {
        if(i>minIndex & i<maxIndex)
        {
            umnog=umnog* *elementMass;
        }
    }
    cout<<"Proizvedenie = "<<umnog<<endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2013, 18:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка по убыванию с использованием указателя (C++):

Преобразование кода без указателя в код с использованием указателя - C++
Правильно ли выполнил? Исходный код без указателя #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; using namespace...

Программа с использованием функции и указателя - C++
Разработать функцию, осуществляющую подсчет нечетных и произведение положительных элементов одномерного массива. Обязательно использовать...

Задача с использованием структуры и указателя - C++
Структура содержит поля: имя, фамилия , возраст. Надо заполнить с клавиатуры и передать через указатель в функцию , в к-ой вывести на экран...

Как реализовать цикл с использованием указателя? - C++
подскажите как сделать правильно хочу сделать указатель на вектор v #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; ...

Как обратиться к элементу массива с использованием указателя - C++
Всем привет, есть некоторая задачка, которую мне очень важно решить... Дословно пишу условие в С\С++ обьявлен массив mas значений...

Переденлать программу обработки вектора с использованием рабочего указателя - C++
Помогите пожалуйста данную программу обработки вектора переделать с использованием рабочего указателя. 1.Найти произведение элементов,...

7
Kuzia domovenok
2032 / 1876 / 169
Регистрация: 25.03.2012
Сообщений: 6,470
Записей в блоге: 1
03.03.2013, 18:43 #2
а где тут сортировка?
0
icpu
369 / 283 / 65
Регистрация: 10.03.2011
Сообщений: 1,218
Записей в блоге: 2
03.03.2013, 18:57 #3

Не по теме:

Напоминает моего однокурсника, который с б/у лабой пришёл к преподу на сдачу, а когда завалил, начал выспрашивать препода, где у него в лабе ошибка.



Alexandri, сортировку какую? Такую сойдёт? Тебе нужно-то функцию поменять местами сделать, остальное в википедии есть.
0
Alexandri
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 46
03.03.2013, 19:02  [ТС] #4
а где тут сортировка?
тут ее нет, я прошу ее дописать
0
icpu
369 / 283 / 65
Регистрация: 10.03.2011
Сообщений: 1,218
Записей в блоге: 2
03.03.2013, 19:13 #5
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
void stoogesort(int *item, int left,int right)
{
   register int tmp, k;
   if(item[left]>item[right])
   {
      tmp=item[left];
      item[left]=item[right];
      item[right]=tmp;
   }
   if((left+1)>=right)
        return;
 
   k=(int)((right-left+1)/3);
   stoogesort(item,left, right-k);
   stoogesort(item, left+k, right);
   stoogesort(item, left, right-k);
}
 
 
//int main()
//{
//int mass[]={1,3,5,7,9,0,8,6,4,2}; //10
//stoogesort(mass,0,9);
//for (int i = 0; i < 10; ++i)
//printf("%d ",mass[i]);
//printf("/nLOL, stoogesort/n");
//return 0;
//}
А теперь, уважаемые знатоки, вопрос: какие и сколько строк кода было честно скопировано с Википедии?
0
XRuZzz
Антикодер
689 / 595 / 29
Регистрация: 15.09.2012
Сообщений: 2,542
03.03.2013, 20:02 #6
можно скопировать отсюда Алгоритмы сортировки
0
icpu
03.03.2013, 20:06
  #7

Не по теме:

XRuZzz, зачем, у меня хороший алгоритм, всего n^3 операций. Это же ОЧЕНЬ БЫСТРО!

1
XRuZzz
03.03.2013, 21:00     Сортировка по убыванию с использованием указателя
  #8

Не по теме:

просто понравилось изложение материала на сайте, всем будет полезно почитать

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2013, 21:00
Привет! Вот еще темы с ответами:

Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя? - C++
Всем доброго дня.:) Можете обьяснить ,почему при инкриментировании указателя,его значение(адресс) увеличивается на 4 (размер int в...

Сортировка массива по убыванию - C++
Отсортировать массив P={1,2,3,4,5,6,7,8,9,0} по убыванию методом вставок. Подскажите пожалуйста как это сделать в borland 3.11?

Сортировка массива по убыванию - C++
Добрый вечер. Есть чаровский массив но в него записаны флотовские данные. И мне нужно отсортировать эти данные по убыванию. Подскажите,...

Сортировка массива по убыванию - C++
Дан массив целых чисел. Написать программу для сортировки массива по убыванию суммы цифр элементов. помогите пожалуйста, ни хрена не...


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

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

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