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

Обработка матрицы - C++

Восстановить пароль Регистрация
 
Lahden
1 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 52
05.11.2013, 21:04     Обработка матрицы #1
Есть цикл для обработки матрицы по условию: 1. Найти индекс последнего столбца, в котором одинаковое количество положительных и отрицательных элементов. 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
28
29
30
31
32
33
34
35
36
37
38
39
    int index = -1;
    for (int j(0); j<M; j++)
    {
        int pos = 0, neg = 0;
 
        for (int i(0); i<N; i++)
        {
            if (matrix [i][j]>0)
                pos++;
            if (matrix [i][j]<0)
                neg++;
        }
        if (pos == neg)
        {
            index=j;
            for (int i(0); i<N; i++)
            {
                matrix [i][index]=0;
            }
        }
    }
 
    cout << index << endl;
 
    cout << "\n\nThe processed matrix\n" ;
 
    i=0;
    while (i<N)
    {
        j = 0 ;
        while (j<M)
        {
            cout << matrix [i] [j] << '\t' ;
            j++;
        }
        cout << endl ;
        i++;
    }
    cout << endl ;
НО его нужно изменить для поиска этого столбца с конца матрицы (с последнего столбца)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 21:04     Обработка матрицы
Посмотрите здесь:

Обработка матрицы C++
C++ Обработка матрицы
Обработка матрицы C++
C++ Обработка матрицы
Обработка матрицы C++
Обработка матрицы C++
Обработка матрицы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
05.11.2013, 21:44     Обработка матрицы #2
Lahden, было лень разбираться в коде, поэтому написал свое... пару раз запустил, работает
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n, m; // n - строк, m - столбцов
    cout << "N: ";
    cin >> n;
    cout << "M: " << endl;
    cin >> m;
    int** a = new int*[n];
    for (int i = 0; i < n; i++)
        a[i] = new int[m];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            a[i][j] = rand()%5-2;
    cout << "Array:\n";
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++) cout << setw(3) << a[i][j];
        cout << endl;
    }
    int mark = -1;
    for (int j = m-1; j >= 0; j--)
    {
        int m = 0;
        int b = 0;
        for (int i = 0; i < n; i++)
        {
            if (a[i][j] > 0) b++;
            if (a[i][j] < 0) m++;
        }
        if (m == b)
        {
            if (mark == -1) mark = j;
            for (int k = 0; k < n; k++)
                a[k][j] = 0;
        }   
    }
    cout << "New Array:\n";
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++) cout << setw(3) << a[i][j];
        cout << endl;
    }
    cout << "Column = " << mark << endl;
    for(int i = 0; i < n; i++)
        delete []a[i];
    delete []a;
    system("pause");
    return 0;
}
Yandex
Объявления
05.11.2013, 21:44     Обработка матрицы
Ответ Создать тему
Опции темы

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