Форум программистов, компьютерный форум CyberForum.ru

Определите элементы массива по возрастанию их модуля - C++

Восстановить пароль Регистрация
 
**KATY
 Аватар для **KATY
0 / 0 / 0
Регистрация: 09.02.2012
Сообщений: 30
12.02.2012, 17:44     Определите элементы массива по возрастанию их модуля #1
Определите элементы массива по возрастанию их модуля
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 17:44     Определите элементы массива по возрастанию их модуля
Посмотрите здесь:

Элементы массива по возрастанию C++
C++ Отсортируйте элементы массива по возрастанию их модуля
Упорядочить элементы вещественного массива по возрастанию C++
C++ Упорядочить элементы массива по возрастанию
Найти сумму отрицательных элементов массива и порядочить элементы массива по возрастанию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
12.02.2012, 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
#include <iostream>
#include <algorithm>
 
bool MM (int a, int b)
{
    return abs(a)<abs(b);
}
 
 
int main()
{
    int a[1000], n;
    std:: cin >> n;
 
    for (int i=0; i<n; ++i) 
        std:: cin >> a[i];
 
    std:: sort (a,a+n,MM);
 
    for (int i=0; i<n; ++i)
        std:: cout << a[i] << " ";
 
    std:: cout << "\n";
 
    system ("pause");
    return 0;
}
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
12.02.2012, 17:48     Определите элементы массива по возрастанию их модуля #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int compare (const void * a, const void * b) // функция для qsort
{
  return ( abs(*(int*)a) - abs(*(int*)b) );
}
 
int main () {
 
        int n=rand()%5+5;            //берем случайное кол-во элементов от 5 до 10 
    int a[n];                                       //массив
    
    for (int i=0; i<n; i++) a[i]=rand()%30-15; //заполнение случ. числами
        
        qsort (a, n, sizeof(int), compare); // спец функция из cstdlib
  
        for (int i=0; i<n; i++)
        cout << a[i] << "  ";  // вывод
    cout << endl;
}
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
12.02.2012, 18:11     Определите элементы массива по возрастанию их модуля #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iterator>
#include <algorithm>
#include <cmath>
#include <vector>
 
bool comp_abs (int val1, int val2) { return abs (val1) < abs (val2); }
 
int main()
{
   std::vector<int> v;
   std::copy (std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(v));
   std::sort (v.begin(), v.end(), comp_abs);
   std::copy (v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
}
http://ideone.com/6gesf#view_edit_box
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
12.02.2012, 21:05     Определите элементы массива по возрастанию их модуля #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
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "iostream"
#include "math.h"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0, "");
    double mas[100];
    int n;
    cout << "Введите количество элементов массива - ";
    cin >> n;
 
    cout << "Введите элементы массива - ";
    for(int i = 0; i < n; i++)
    {
        cin >> mas[i];
    }
    //с помощью пузырьковой сортировки упорядочиваем массив по убыванию элементов массива
    for(int i = 0; i < n; i++)
    {
       for(int j = n - 1; j > i; j--)
       {
          if (abs(mas[j-1]) > abs(mas[j]))  //если модуль предыдущего элемента меньше чем модуль теререшнего элемента, тогда....
           {
               //меняем местами элементы
              double x = mas[j-1]; 
              mas[j-1] = mas[j]; 
              mas[j] = x;
           }
       }
    }
    
    cout << "Упорядоченный массива по убыванию модулей элементов\n";
    for(int i = 0; i < n; i++) 
    {
        cout << mas[i] << " "; //выводим массив после сортировки
    }
    system("pause >> null");
    return 0;
}
Yandex
Объявления
12.02.2012, 21:05     Определите элементы массива по возрастанию их модуля
Ответ Создать тему
Опции темы

Текущее время: 16:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru