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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nick96
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 98
#1

Нумерация особых строк матрицы - C++

29.05.2014, 14:52. Просмотров 314. Ответов 9
Метки нет (Все метки)

Подскажите, пожалуйста, какой код нужен для того, чтобы пронумеровать только некоторые строки матрицы.
Например, мне по заданию нужно пронумеровать только те строки, в которых хотя бы некоторые элементы = значению c.
Наглядный пример: с = 3
моя матрица такова
1 2 3
1 1 1
3 1 1
Код программы делает следующее
1) 1 2 3
1 1 1
3) 3 1 1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 14:52     Нумерация особых строк матрицы
Посмотрите здесь:

C++ Определить количество "особых" элементов матрицы
C++ Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы
нумерация строк в настройках компилятора C++
C++ Определить количество "особых" элементов матрицы
Определить количество особых элементов матрицы, считая элементы особым, если он больше суммы остальных элементов его столбца C++
Определить количество «особых» элементов матрицы C++
C++ Определить количество «особых» элементов матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
slayster
5 / 5 / 1
Регистрация: 25.03.2014
Сообщений: 20
29.05.2014, 15:51     Нумерация особых строк матрицы #2
Nick96, так?
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
#include <iostream>
#include <time.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    srand(unsigned(time(0)));
 
    const int row = 5, col = 5;
    int mas[row][col];
    int c = 3;
    bool check = false;
 
    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++)
            mas[i][j] = rand() % 10;
 
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            if (mas[i][j] == c)
            {
                check = true;
                break;
            }
            check = false;
        }
        if (check == true)
            cout << i << ") ";
 
        for (int p = 0; p < col; p++)
            cout << mas[i][p] << " ";
        cout << endl;
    }
 
    return 0;
}
Max Dark
шКодер самоучка
1656 / 1457 / 527
Регистрация: 09.10.2013
Сообщений: 3,316
Записей в блоге: 8
Завершенные тесты: 2
29.05.2014, 15:55     Нумерация особых строк матрицы #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
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
#include <iostream>
#include <vector>
#include <vector>
#include <map>
 
#include <cstdlib>
#include <ctime>
 
 
int main(int argc, char **argv) {
    using namespace std;
    
    vector < vector < int > > matrix;
    size_t sz;
    int c;
    
    srand(time(NULL));
    
    cout<<"enter size"<<endl;
    cin>>sz;
    cout<<"enter C"<<endl;
    cin>>c;
    
    matrix.resize(sz);
    for(auto&& row: matrix) {
        row.resize(sz);
        for(auto&& cell: row) {
            cell = rand() % 10;
            //cout<<" "<<cell;
        }
        //cout<<endl;
    }
 
    int i = 1;
    for(auto&& row: matrix) {
        bool flag = false;
        for(auto&& cell: row) {
            if(flag=(cell == c))
                break;
        }
        if(flag)
            cout<<i<<") ";
        for(auto&& cell: row) {
            cout<<cell<<" ";
        }
        cout<<endl;
        ++i;
    }
    return 0;
}
Миниатюры
Нумерация особых строк матрицы  
Nick96
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 98
29.05.2014, 21:38  [ТС]     Нумерация особых строк матрицы #4
Спасибо, Cra3y, однако, матрицу нужно вводить вручную
Max Dark
шКодер самоучка
1656 / 1457 / 527
Регистрация: 09.10.2013
Сообщений: 3,316
Записей в блоге: 8
Завершенные тесты: 2
29.05.2014, 21:50     Нумерация особых строк матрицы #5
ну хоть это сами сделайте)
подсказываю: нужно изменить строку №28 в моем коде или №20 в коде от slayster
Nick96
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 98
29.05.2014, 22:07  [ТС]     Нумерация особых строк матрицы #6
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 "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL, "Russian"); 
    int Ar[20][20]; 
    int i, j,sum = 0, M, N; 
    do
    {
        cout << "Введите число строк ";
        cin >> M; 
        cout << "Введите число столбцов ";
        cin >> N; 
        if (M <= 1 || N <= 1)
            cout << " Числа строк и столбцов должны быть больше 1\n " << endl;
    } while (M <= 1 || N <= 1);
    cout << "Введите построчно матрицу размерности " << M << " на " << N << "\n"; 
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
        {
            cin >> Ar[i][j]; // Ввод элементов матрицы
Вот начало моего кода

Добавлено через 2 минуты
А что дальше?
slayster
5 / 5 / 1
Регистрация: 25.03.2014
Сообщений: 20
29.05.2014, 22:33     Нумерация особых строк матрицы #7
Чтобы задавать самостоятельно количество строк и столбцов, надо создавать динамическую матрицу
Nick96
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 98
29.05.2014, 23:09  [ТС]     Нумерация особых строк матрицы #8
О-о-о. А как тогда можно выводить номера строк с элементами (хотя бы одним) = с уже после матрицы.
slayster
5 / 5 / 1
Регистрация: 25.03.2014
Сообщений: 20
29.05.2014, 23:47     Нумерация особых строк матрицы #9
с использованием динамического массива.
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
#include <iostream>
#include <time.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    srand(unsigned(time(0)));
 
    const int row = 5, col = 5;
    int mas[row][col];
    int c = 3, count = 0, p = 0;
    bool check = false;
    int* ar;
 
    for (int i = 0; i < row; i++)
    for (int j = 0; j < col; j++)
        mas[i][j] = rand() % 10;
 
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            if (mas[i][j] == c)
            {
                check = true;
                count++;
                break;
            }
            check = false;
        }
        if (check == true)
            cout << i << ") ";
 
        for (int p = 0; p < col; p++)
            cout << mas[i][p] << " ";
        cout << endl;
    }
 
    ar = new int[count];
 
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            if (mas[i][j] == c)
            {
                check = true;
                break;
            }
            check = false;
        }
        if (check == true)
        {
            ar[p] = i;
            p++;
        }
    }
 
    for (int i = 0; i < p; i++)
        cout << ar[i] << " ";
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2014, 12:38     Нумерация особых строк матрицы
Еще ссылки по теме:

C++ Вычислить среднее арифметическое особых элементов матрицы
Нумерация строк матрицы C++
Задана матрица размером NxM. Определить количество "особых" элементов матрицы C++
Определить количество «особых» элементов матрицы C++

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

Или воспользуйтесь поиском по форуму:
Nick96
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 98
01.06.2014, 12:38  [ТС]     Нумерация особых строк матрицы #10
О_О Это не работает
Yandex
Объявления
01.06.2014, 12:38     Нумерация особых строк матрицы
Ответ Создать тему
Опции темы

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