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

Упорядочить каждую строку матрицы по возрастанию абсолютных величин - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оптимизация программного кода http://www.cyberforum.ru/cpp-beginners/thread831877.html
Не могу оптимизировать программный код, пыталась много раз, но никак. Вот текст задачи: "Даны четыре положительных вещественных числа a, b, c, d. Для каждой тройки этих чисел определить существует ли треугольник с такими сторонами и среди всех треугольников найти тот, у которого площадь максимальна." Код вида if (a+c>d) //Треугольник ACD { p = (a+c+d)/2; s =...
C++ По заданной дате вывести информацию о том, високосный ли год в этой дате, а также название месяца и количество дней в нем. Ребят, помогите пожалуйста, я только начала проходить программирование и еще не совсем разбираюсь По заданной дате вывести информацию о том, високосный ли год в этой дате, а также название месяца и количество дней в нем. http://www.cyberforum.ru/cpp-beginners/thread831871.html
C++ вычисление sin
Здравствуйте, подскажите как работает синус в си++ путаюсь получить угол треугольникак но не как , как в си записать sin(arg)=1/2; что бы посчитал arg (угол) а то у меня что то страное произходит.
задача на OpenMP C++
необходимо посчитать интеграл по формуле y(x)=x^2,xϵ по формуле прямоугольников на OpenMP
C++ Ввод и вывод элементов структуры http://www.cyberforum.ru/cpp-beginners/thread831858.html
Не получается ввести и вывести на экран элементы структуры после второго. #include <stdio.h> #include <iostream> #include <string.h> struct form { char surname; int phone; char address; };
C++ Произведение конечных автоматов Помогите написать программу, что получает на вход 2 конечных автомата, на выходе выдает произведение этих автоматов в виде таблицы с выключенными недосягаемыми состояниями. Я сам то понимаю как она должна работать, но вот в коде не получается, почти ничего не написано. подробнее

Показать сообщение отдельно
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
15.04.2013, 18:43     Упорядочить каждую строку матрицы по возрастанию абсолютных величин
Nikkun,

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
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
 
void quick(int* a, int n) {
   int i = 0, j = n;        // поставить указатели на исходные места
   int temp, p;
 
   p = a[ n>>1 ];        // центральный элемент
 
   //p=n/2;
   // процедура разделения
   do {
      while ( abs(a[i]) < abs(p) ) i++;
      while ( abs(a[j]) > abs(p) ) j--;
 
      if (i <= j) {
         temp = a[i]; a[i] = a[j]; a[j] = temp;
         i++; j--;
      }
   } while ( i<=j );
 
   // рекурсивные вызовы, если есть, что сортировать
   if ( j > 0 ) quick(a, j);
   if ( n > i ) quick(a+i, n-i);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE,"Russian");
    int m, n;
    cout << "Введите количество строк от 1 до 10: \n";
    cin >> m;
    if (m>=1 && m<=10) cout<<"\n";
    else {cout<<"Так нельзя\n"; return 0;}
    cout << "Введите количество столбцов от 1 до 10: \n";
    cin >> n;
    if (n>=1 && n<=10) cout<<"\n";
    else {cout<<"Так нельзя\n"; return 0;}
    int **arr = new int *[m];
 
    for (int i = 0; i<m; i++)
    {
            arr[i] = new int[n];
            for (int j = 0; j<n; j++)
            {
                arr[i][j] = (rand()%99)-50;
                printf("%4i", arr[i][j]); 
            }
            cout << endl; 
    }
 
    for (int v=0; v<n; v++)
    {
        quick(arr[v], n-1);
    }
 
    cout << endl << endl;
    for (int i = 0; i<m; i++)
    {
            for (int j = 0; j<n; j++)
            {
                printf("%4i", arr[i][j]); 
            }
            cout << endl; 
    }
    cout<<"\n";
}
Добавлено через 40 минут
Nikkun, и вот сортировка Шелла

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
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
 
void InsertSort(int arr[], unsigned len, unsigned step) 
{
   unsigned i, j;
   int key;
   for (i = step; i < len; i += step) 
   {
      key = arr[i];
      j = i;
      while ((j > 0) && (abs(arr[j-step]) > abs(key)))
      {
         arr[j] = arr[j-step];
         j -= step;
      }
      arr[j] = key;
   }
 }
 
void ShellSort(int arr[], unsigned len)
{
   unsigned step = len / 2;
   while (step)
   {
      InsertSort(arr, len, step--);
   }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE,"Russian");
    int m, n;
    cout << "Введите количество строк от 1 до 10: \n";
    cin >> m;
    if (m>=1 && m<=10) cout<<"\n";
    else {cout<<"Так нельзя\n"; return 0;}
    cout << "Введите количество столбцов от 1 до 10: \n";
    cin >> n;
    if (n>=1 && n<=10) cout<<"\n";
    else {cout<<"Так нельзя\n"; return 0;}
    int **arr = new int *[m];
 
    for (int i = 0; i<m; i++)
    {
            arr[i] = new int[n];
            for (int j = 0; j<n; j++)
            {
                arr[i][j] = (rand()%99)-50;
                printf("%4i", arr[i][j]); 
            }
            cout << endl; 
    }
 
    for (int v=0; v<n; v++)
    {
        ShellSort(arr[v], n);
    }
 
    cout << endl << endl;
    for (int i = 0; i<m; i++)
    {
            for (int j = 0; j<n; j++)
            {
                printf("%4i", arr[i][j]); 
            }
            cout << endl; 
    }
    cout<<"\n";
}
 
Текущее время: 07:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru