Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 5

Оцените код нахождения числа уникальных элементов строк матрицы

20.09.2011, 22:27. Показов 1062. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть задания: дана непрямоугольная матрица(в каждой строке разное кол-во элементов). Необходимо вывести в другую строку число уникальных элементов. Например вводим:
1 2 3
1 1 1 2
1 3 3 2 3
Получаем: 3 2 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
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
# include <iostream>
using namespace std;
struct MxLine {
    int length_of_line;         // длина строки
    int *line;                  // ук-ль на начало строки
};
struct Matrix {
    MxLine *mxline;             // ук-ль на массив строк
    int count_of_rows;           // количество строк      
};
void create_matr(Matrix &matr);
void print_matr(Matrix &matr);
void find_vector(Matrix &matr);
void delete_matr(Matrix &matr);
void print_menu(Matrix &matr);
int main() {
    Matrix matr = {0, 0};
    print_menu(matr);
    //create_matr(matr);
    //print_matr(matr);
    //find_vector(matr);
    //system("pause");
    return 0;
}
void create_matr(Matrix &matr) {
    cout << "Input count of rows: ";
    cin >> matr.count_of_rows;
    matr.mxline = new MxLine[matr.count_of_rows];
    for (int i = 0; i < matr.count_of_rows; i++) {
        cout << "Input length of line " << i << ": ";
        cin >> matr.mxline[i].length_of_line;
        matr.mxline[i].line = new int[matr.mxline[i].length_of_line];
        for(int j = 0; j < matr.mxline[i].length_of_line; j++) {
            cout << "Input matr[" << i << "]" << "[" << j << "]" << ": ";
            cin >> matr.mxline[i].line[j];    
        }       
    }
    cout << endl;        
}
void print_matr(Matrix &matr) {
    cout << "Basic matrix: " << endl;
    for (int i = 0; i < matr.count_of_rows; i++) {
        for (int j = 0; j < matr.mxline[i].length_of_line; j++) {
            cout << matr.mxline[i].line[j] << " ";
        }
        cout << endl;
    }
}
void find_vector(Matrix &matr) {
    int k = 0;
    int length = 0;
    int *vec = new int[k];
        for (int i = 0; i < matr.count_of_rows; i++) {
            length = matr.mxline[i].length_of_line;
            for (int j = 0; j < matr.mxline[i].length_of_line; j++) {
                for (int l = j + 1; l < matr.mxline[i].length_of_line; l++) {
                    if (matr.mxline[i].line[j] == matr.mxline[i].line[l]) {
                        length--;
                }
            }
        }
        vec[k] = length;
        k++;
    }
    cout << endl;
    cout << "Vector: " << endl << endl;
    for (int i = 0; i < k; i++) {
        cout << vec[i] << " ";
    }
    vec = 0;
    cout << endl;
    cout << endl;
}
void delete_matr(Matrix &matr) {
    for (int i = 0; i < matr.count_of_rows; i++ ) {
        delete[] matr.mxline[i].line;
    }
    delete[] matr.mxline;
    matr.count_of_rows = 0;
    matr.mxline = 0;
}
void print_menu(Matrix &matr) {
    cout << endl;
    char choice = '0';
    do {
        cout << "1: Create new matrix" << endl;
        cout << "2: Print basic matrix" << endl;
        cout << "3: Print vector" << endl;
        cout << "4: Create and print new matrix, print vector" << endl;
        cout << "0: Exit" << endl;
        cout << "Your choice: ";
        cin >> choice;
        switch(choice) {
        case '1': create_matr(matr);
                  break;
        case '2': print_matr(matr);
                  break;
        case '3': find_vector(matr);
                  delete_matr(matr);
                  break;
        case '4': create_matr(matr);
                  print_matr(matr);
                  find_vector(matr);
                  delete_matr(matr);
                  break;
        case '0': break;
        default: cout << "It's wrong choice, try again" << endl;
        }
    }
    while (choice != '0');
    cout << endl << endl;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2011, 22:27
Ответы с готовыми решениями:

Функция для нахождения уникальных элементов массива
Есть функция на JS, которой передается двумерный символьный массив. Она возвращает символы без повторений: function getLetters(a) { ...

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

Нахождения числа строк матрицы
Составить программу нахождения числа строк матрицы А(6,6), максимальный элемент которых больше Р. Помогите решить пожалуйста :help:

4
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
21.09.2011, 09:51
Цитата Сообщение от Hitlok Посмотреть сообщение
дана непрямоугольная матрица(в каждой строке разное кол-во элементов)
- матрица подразумевает одинаковое число столбцов по всем строкам
к тому же непонятно почему

Цитата Сообщение от Hitlok Посмотреть сообщение
Получаем: 3 2 3.
а не 1 2 3???Что подразумевается под уникальной строкой???
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
21.09.2011, 10:04
Цитата Сообщение от Hitlok
Необходимо вывести в другую строку число уникальных элементов.
читаешь числа в массив
сортируешь массив
считаешь, сколько раз a[i] != a[i + 1]
0
 Аватар для hakerok115
0 / 0 / 0
Регистрация: 08.03.2010
Сообщений: 57
21.09.2011, 16:43
библиотеку .h ставь это на визуале работает только!
0
21.09.2011, 16:45

Не по теме:

Цитата Сообщение от hakerok115 Посмотреть сообщение
библиотеку .h ставь это на визуале работает только!
если в твоем компиляторе не работает без ".h", то закопай его обратно

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.09.2011, 16:45
Помогаю со студенческими работами здесь

Составить программу нахождения числа строк матрицы А(6,6), максимальный элемент которых больше Р.
помогите решить! Составить программу нахождения числа строк матрицы А(6,6), максимальный элемент которых больше Р. Правила форума п....

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

Разработайте универсальную программу нахождения числа элементов целочисленной квадратной матрицы кратных К и наибольшего из них
Здравствуйте. Вот моя задачечка: Разработайте универсальную программу нахождения числа элементов целочисленной квадратной матрицы кратных К...

Определить числа b1,... , b m равные суммам элементов строк матрицы
Дана действительная матрица m на n. Определить числа b1, ..., b m равные суммам элементов строк

Определить числа, равные соответственно суммам элементов строк матрицы
(Задачник Абрамов С.А.) #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; void main() { int s; int...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru