Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
ataman90
4 / 4 / 0
Регистрация: 15.02.2009
Сообщений: 30
1

Характеристикой столбца целочисленной матрицы...

09.03.2009, 11:05. Просмотров 5314. Ответов 1
Метки нет (Все метки)

Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик.
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.
Заранее благодарен.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2009, 11:05
Ответы с готовыми решениями:

Двумерные массивы 1. Характеристикой столбца целочисленной матрицы ...
подскажите пожалуста, есть задание: "Характеристикой столбца целочисленной матрицы назовем сумму...

Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, распол
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных...

Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов
Нужно для кода сделать " Характеристикой строки целочисленной матрицы назовем сумму ее ...

Динамический массив. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы
#include <iostream.h> #include <math.h> #include <string.h> int kol_vo(int **a, int n, int...

1
максимильян
1 / 1 / 1
Регистрация: 01.05.2013
Сообщений: 76
22.05.2013, 19:36 2
Лучший ответ Сообщение было отмечено ataman90 как решение

Решение

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// Column_integer.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
int main(int argc, char* argv[])
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
    int number_rows,// строки
        number_columns; // столбцы
    cout << "Введите количество строк матрицы: ";
    cin >> number_rows;
    cout << "Введите количество столбцов матрицы: ";
    cin >> number_columns;
 
    // динамическое создание двумерного массива для хранения сгенерированных чисел
    int **ptrarray = new int* [number_rows];
    for (int count = 0; count < number_rows; count++)
        ptrarray[count] = new int [number_columns];
 
    cout << "\nИсходный массив:\n";
    for (int counter_rows = 0; counter_rows < number_rows; counter_rows++)
    {
        for (int counter_columns = 0; counter_columns < number_columns; counter_columns++)
        {
            ptrarray[counter_rows][counter_columns] = rand() % 100 - rand() % 100; // заполнение массива случайными числами
            cout << setw(3) << ptrarray[counter_rows][counter_columns] << "  "; // вывод на экран двумерного массива
        }
        cout << endl;
    }
    cout << endl;
 
    int *ptrsum = new int [number_columns]; // массив характеристик столбцов
    for (int counter_columns = 0; counter_columns < number_columns; counter_columns++)
    {
        ptrsum[counter_columns] = 0; // обнуляем элементы массива характеристик столбцов
        for (int counter_rows = 0; counter_rows < number_rows; counter_rows++)
            if ( (ptrarray[counter_rows][counter_columns] < 0)/*отрицательное число*/ && ((ptrarray[counter_rows][counter_columns] % 2 != 0))/*нечётное*/ )
                ptrsum[counter_columns] += abs(ptrarray[counter_rows][counter_columns]); // сумма элементов столбца матрицы
    }
 
    cout << "\nМассив характеристик:\n";
    for ( int counter = 0; counter < number_columns; counter++)
        cout << setw(3) << ptrsum[counter] << "  "; // печать характеристик массива
    cout << endl << endl;
 
    int *ptrindex = new int [number_columns]; // массив индексов, для формирования порядка перестановок столбцов
    int min = 1000, // переменная для упорядочивания характеристик массива по возрастанию
        index_column; // переменная для хранения индекса минимальной характеристики
 
    // формируем порядок перестановки столбцов
    for (int counter_value = 0; counter_value < number_columns; counter_value++)
    {
        for (int counter = 0; counter < number_columns; counter++)
        {
            if (min > ptrsum[counter] && ptrsum[counter] != -1)
            {
                min = ptrsum[counter]; // поиск минимального
                index_column = counter; // запоминаем номер столбца
            }
        }
     ptrindex[counter_value] = index_column; // сохраняем индекс столбца в массив индексов
     ptrsum[index_column] = -1; // исключаем из поиска данный элемент массива
     min = 1000; // увеличиваем минимум
    }
 
    delete [] ptrsum; // удаляем массив характеристик столбцов
 
    // динамическое создание двумерного массива для перестановок столбцов согласно возрастанию характеристик
    int **ptrarray_relocation = new int* [number_rows];
    for (int count = 0; count < number_rows; count++)
        ptrarray_relocation[count] = new int [number_columns];
 
    // выполняем перестановку столбцов
    for (int counter_columns = 0; counter_columns < number_columns; counter_columns++)
        for (int counter_rows = 0; counter_rows < number_rows; counter_rows++)
                ptrarray_relocation[counter_rows][counter_columns] = ptrarray[counter_rows][ptrindex[counter_columns]]; // перестановка столбцов
 
    // вывод массива, с перестановленными столбцами, на экран
    cout << "\nМассив после перестановок столбцов:\n";
    for (int  counter_rows= 0; counter_rows < number_rows; counter_rows++)
    {
        for (int counter_columns = 0; counter_columns < number_columns; counter_columns++)
        {
            cout << setw(3) << ptrarray_relocation[counter_rows][counter_columns]  << "  ";
        }
        cout << endl;
    }
    cout << endl;
 
    // удаление двумерного динамического массива ptrarray
    for (int count = 0; count < number_rows; count++)
        delete []ptrarray[count];
 
    delete [] ptrindex; // удаление массива индексов характеристик
 
    // удаление двумерного динамического массива ptrarray_relocation
    for (int count = 0; count < number_rows; count++)
        delete []ptrarray_relocation[count];
 
    system("pause");
    return 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 19:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Определить номер строки матрицы с наименьшей характеристикой
{ int n, m; cout&lt;&lt;&quot;n = &quot;; cin&gt;&gt;n; cout&lt;&lt;&quot;m = &quot;; cin&gt;&gt;m; int** matr = new int*; time_t...

В целочисленной матрице найти номер столбца с минимальной суммой элементов
С++.дана целочисленная матрица (m,n) Найти номер столбца с минимальной суммой элементов

Ввод с клавы размера целочисленной матрицы, а затем самой матрицы. Найти наибольший элемент. Разрешается использовать только один оператор цикла
С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти наибольший...


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

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

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