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

Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями - C++

Восстановить пароль Регистрация
 
Anwer
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
03.01.2014, 17:06     Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями #1
Условие:
Даны натуральные числа m, n (m, n <= 10) и целочисленную матрицу размера
m x n. Изменить матрицу так, чтобы в строках остались элементы, которые
встречаются более одного раза, а другие заменить нулями.
Решение:
Задача работает некорректно, не могу понять алгоритм работы, и как нужно её сделать. Помогите новичку пожалуйста.
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 <math.h>
using namespace std;
 
int main ()
{
    setlocale(0, "rus");
    double a[10][10];
    int i, j, n, m;
    cout << "Введите количество столбцов: ";
    cin >> n;
    cout << "Введите количество строк: ";
    cin >> m;
    cout << "Введите елементы массива: " << endl;
    for (i = 0; i < n; i++)
    for (j = 0; j < m; j++)
        cin >> a[i][j];
    for (j = 0; j < m; j++)
    {
        for (i = 0; i < n; i++)
        cout << a[i][j] << '\t';
        cout << endl;
    }
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
         if (a[i][j] = a[i][j] || a[i][j] != 0)
             a[i][j] = a[i][j];
         else
             if (a[i][j] != a[i][j])
                 a[i][j] = 0;
    cout << endl;
        }
    for (j = 0; j < m; j++)
    {
    for (i = 0; i < n; i++)
        cout << a[i][j] << '\t';
        cout << endl;
    }
    system ("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2014, 17:06     Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями
Посмотрите здесь:

Обработать строку так, чтобы чтобы в ней остались только те слова которые содержат буквы и цифры C++
Все элементы вектора, которые встречаются более одного раза, переписать в другой вектор C++
C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза
Нужно выяснить, какие символы встречаются в обеих строках, так же и те, которые встречаются только в одной C++
Многомерные массивы. Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Исключить из файла все слова, которые встречаются более одного раза C++
Выделить в другой массив все числа, которые встречаются более одного раза в исходном C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
03.01.2014, 19:23     Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями #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
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <math.h>
using namespace std;
 
int main ()
{
    setlocale(0, "rus");
    int a[10][10];
    int i, j, n, m;
    cout << "Ââåäèòå êîëè÷åñòâî ñòîëáöîâ: ";
    cin >> n;
    cout << "Ââåäèòå êîëè÷åñòâî ñòðîê: ";
    cin >> m;
    cout << "Ââåäèòå åëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*: " << endl;
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            cin >> a[i][j];
    for (j = 0; j < n; j++)
    {
        for (i = 0; i < m; i++)
            cout << a[j][i] << ' ';
        cout << endl;
    }
    bool flag;
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
            flag = false;
            for (int k=0; k<m; k++)
            {
                if (j!=k && a[i][j]==a[i][k])
                {
                    flag = true;
                    break;
                }
            }
            if (!flag)
               a[i][j] = 0;
        }
    }
    for (j = 0; j < n; j++)
    {
        for (i = 0; i < m; i++)
            cout << a[j][j] << ' ';
        cout << endl;
    }
    return 0;
}
WindRunn3r
0 / 0 / 0
Регистрация: 21.09.2015
Сообщений: 1
19.01.2016, 19:52     Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями #3
Безменов?
Yandex
Объявления
19.01.2016, 19:52     Изменить матрицу так, чтобы в строках остались элементы, которые встречаются более одного раза, а другие заменить нулями
Ответ Создать тему
Опции темы

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