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

Добавить "K" столбцов перед столбцом с наибольшим количеством отрицательных элементов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция для нахождение минимального значения каждого столбца в двумерном массиве http://www.cyberforum.ru/cpp-beginners/thread1304127.html
Как создать функцию, код, который в строчках 41 - 55 Спасибо заранее!!! #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #define ROW 5 #define COLUMN 5 void...
C++ Найти произведение элементов главной диагонали матрицы Дана матрица А(4,4), задать из файла. Найти произведение элементов среди элементов расположенных на главной диагонали матрицы А. Найти минимальный элемент в 3-ей строке матрицы. Поменять местами... http://www.cyberforum.ru/cpp-beginners/thread1304126.html
C++ Замена мест минимальных элементов
Постройте микропрограмнный аппарат,который выполняет превращение элементов массивов , A(n) і B(n) таким образом: меняет минимальные элементы местами.
C++ Определить процедуру, позволяющую распознавать полные квадраты
Дано натуральное число n. Среди чисел 1,2,...,n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел. (Определить процедуру, позволяющую распознавать полные квадраты).
C++ Вычислить значения новой последовательности http://www.cyberforum.ru/cpp-beginners/thread1304075.html
Даны действительные числа a1,…,a10 и натуральное число m. Последовательность b1,b2... бразуются по закону b1=a1,...b10=a10 bk=bk-1+bk-2+…+bk-10, k=11,12,… Получить bm
C++ Цикл, вычисление среднего роста Всем Привет! Мое задание: Задано n количество студентов. Нужно узнать средний рост. В Общем мне нужно составить так код, что бы я ввел, к примеру, число 5. И когда ввожу рост, что бы количество раз... подробнее

Показать сообщение отдельно
Cookie Monster
16 / 16 / 3
Регистрация: 03.11.2014
Сообщений: 71
20.11.2014, 20:41
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
    const int N = 5;
    const int M = 8;
    const int K = 4;
    int a[N][M],c[N][K];
    srand(time(0));
//Инициализация массива А
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < M; j++)
        {
            a[i][j] = rand()%20 - 10;
        }
    }
//Вывод массива А
    std::cout << "mass A" << std::endl;
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < M; j++)
        {
            std::cout << a[i][j] << " ";
        }
        std::cout << std::endl;
    }
//Инициализация массива С
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < K; j++)
        {
            c[i][j] = rand()%20 - 10;
        }
    }
//Вывод массива С
    std::cout << "mass C" << std::endl;
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < K; j++)
        {
            std::cout << c[i][j] << " ";
        }
        std::cout << std::endl;
    }
//Удаление главной диагонали массива А
for(int i = 0; i < N; i++)
    {
        for(int j = i; j < M-1; j++)
        {
            a[i][j] = a[i][j+1];
        }
    }
//Вывод измененного массива А
std::cout << "mass A izm" << std::endl;
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < M-1; j++)
        {
            std::cout << a[i][j] << " ";
        }
        std::cout << std::endl;
    }
    int max = 0;                //максимальное кол-во отр элементов в столбце
    int count = 0;              //счетчик отр элементов текущей строки
    int num_st = 0;             //номер столбца с максимальным кол-вом отр эл-тов
    for(int j = 0; j < M-1; j++)
    {
//обнуление счетчика отр эл-тов текущего столбца
        count = 0;
//увеличение счетчика если эл-нт столбца имеет отр значение
        for(int i = 0; i < N; i++)
        {
            if(a[i][j] < 0)
            {
                count++;
            }
        }
//когда все эл-ты столбца пройдены обновление максимального кол-ва отр эл-тов
// в столбце и номера столбца с максимальным кол-вом отр эл-тов 
        if (count > max)
        {
            max = count;
            num_st = j;
        }
    }
    std::cout << "stol6ec = " << num_st << std::endl;
    int temp;
    std::cout << "enter num st of C for move to Q but less K = " << K << std::endl;
    std::cin >> temp;
//в temp хранится кол-во столбцов из массива С которое надо скопировать в массив Q
    if (temp > K)
        temp = K;
//выделение памяти под массив Q с учетом изменения кол-ва столбцов в массиве А
// и кол-ва столбцов копируемых из массива С
    int **q = new int*[N];
    for(int i = 0; i < N; i++)
    {
        q[i] = new int[temp + M - 1];
    }
//внешний цикл относится к каждой строке массива Q
    for(int i = 0; i < N; i++)
    {
//копирование в массив Q элементов из столбцов массива А находящихся до 
//столбца под номером хранящимся в num_st
        for(int j = 0; j < num_st; j++)
        {
            q[i][j] = a[i][j];
        }
//копирование в массив Q элементов из столбцов массива С находящихся до 
//столбца под номером хранящимся в temp
//jj нужен т.к. индексы для элементов массива С находятся в пределах от 0 до temp
        int jj = 0;
        for(int j = num_st; j < temp+ num_st; j++)
        {
            q[i][j] = c[i][jj];
            jj++;
        }
//копирование в массив Q элементов из столбцов массива С находящихся после 
//столбца под номером хранящимся в temp
//jj равен num_st т.к. индексы для элементов массива А начинаются с num_st
        jj = num_st;
        for(int j = temp+ num_st; j < temp + M - 1; j++)
        {
            q[i][j] = a[i][jj];
            jj++;
        }
    }
//вывод массива Q
    std::cout << "mass Q" << std::endl;
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < temp + M - 1; j++)
        {
            std::cout << q[i][j] << " ";
        }
        std::cout << std::endl;
    }
//освобождение памяти выделенной под массив Q
    for(int i = 0; i < N; i++)
    {
        delete[] q[i];
    }
    delete[] q;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru