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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
#1

Определить количество различных элементов матрицы - C++

26.03.2012, 21:44. Просмотров 1231. Ответов 7
Метки нет (Все метки)

Помогите ,пожалуйста ,реализовать программу на языке Си . Определить количество различных элементов матрицы С (повторяющиеся элементы считать один раз).Если можно с коментариями в коде для понимания .
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2012, 21:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить количество различных элементов матрицы (C++):

Определить количество различных элементов матрицы - C++
помогите ребята! Задана символьная матрица размером N×M, N,M<50. Определить k - количество различных элементов матрицы (т.е....

Определить количество различных элементов матрицы - C++
Ну пожалуйста Помогите ребята!Динамический массив. Задана символьная матрица размером N×M, N,M<50. Определить k - количество различных...

Определить количество различных элементов матрицы - C++
помогите пожалуйста ребята! Задана символьная матрица размером N×M, N,M<50. Определить k - количество различных элементов матрицы (т.е....

Определить количество различных элементов матрицы - C++
//Помогите разобраться в "рабочей" программе.(комментариями!!) //Условие задачи:Задана символьная матрица размером NxM. Определить...

Динамический массив. Определить количество различных элементов матрицы - C++
Помогите ребята! Задана символьная матрица размером N×M, N,M<50. Определить k - количество различных элементов матрицы (т.е....

Матрицы. Определить количество различных значений - C++
Дана задача по СИ++ Задана матрица размером NхM. Определить количество различных значений матрицы, т.е. повторяющиеся...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
26.03.2012, 21:55 #2
См. например
Определить количество различных эле-ментов в массиве
1
-=ЮрА=-
Заблокирован
Автор FAQ
27.03.2012, 17:30 #3
jeka061288, вот и весь алгоритм
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
#include <stdio.h>//printf scanf
#include <stdlib.h>//malloc system rand srand
#include <time.h>  //time()
 
int main()
{
    int flag = 0;//ÏåðåìåГ*Г*Г*Гї ГґГ«Г*ГЈ Г±ГЁГЈГ*Г*ëèçèðóþùГ*Гї
    //âñòðå÷Г*ëîñü ëè Г¤Г*Г*Г*îå ÷èñëî ëåâåå ГІГҐГЄГіГ№Г№ГҐГ© ïîçèöèè
    int i, j, n = -1, m = 1;
    int * arr= NULL;//ÓêГ*Г§Г*òåëü Г*Г* Г*Г*Гё Г¬Г*Г±Г±ГЁГў
    //ГќГІГЁГ¬ öèêëîì èçáåãГ*ГҐГ¬ Г*åêîððåêòГ*îãî ââîäГ*
    while(n < 1)
    {
        printf("Enter number of elements : ");
        scanf("%d",&n);
    }
    //Ïðîáóåì âûäåëèòü ГЇГ*ìÿòü ïîä Г¬Г*Г±Г±ГЁГў
    if(!(arr = (int *)malloc(n*sizeof(int))))
        printf("Allocation memory error\n");
    else
    {
        srand(time(0));//ГЌГіГ¦Г*Г® äëÿ ГЈГҐГ*ГҐГ°Г*öèè ñëó÷. Г·ГЁГ±ГҐГ«
        printf("Generated array\n");
        for(i = 0; i < n; i++)
        {
            //ГѓГҐГ*åðèðóåì ñëó÷ Г·ГЁГ±Г«Г* îò -5 äî 5
            arr[i] = rand()%10 - 5;
            printf("%d ",arr[i]);
        }
        printf("\nDifferent elements in array\n");
        printf("%d ",arr[0]);//Г‚ ëþáîì ñëó÷Г*ГҐ ïåðâûé ýëåìåГ*ГІ
        //ГўГ±ГҐГЈГ¤Г* ГЇГҐГ·Г*ГІГ*ГҐГ¬(Г¬Г*Г±Г±ГЁГў ìîæåò áûòü Г¤Г*æå Г¤Г*æå ГЁГ§
        //îäГ*ГЁГµ ГЁ ГІГҐГµ æå Г·ГЁГ±ГҐГ« ГЁ ГЇГ®Г*ГїГІГ*îå äåëî Г·ГІГ® ГЁ Гў ýòîì ñëó÷Г*ГҐ
        //Г*ГіГ¦Г*Г® ГЇГҐГ·Г*ГІГ*ГІГј 1-Г© ýëåìåГ*ГІ Г* îñòГ*ëüГ*ûå óæå Г*ГҐГІ
        for(i = 1; i < n; i++)
        {
            flag = 0;
            //äîï óñëîâèå && flag == 0 Г*ГіГ¦Г*Г® ÷òîáû 
            //Г*ГҐ ïåðåðГ*ГЎГ*òûâГ*ГІГј Гў öèêëå, ìîæГ*Г® áûëî ГЎГ»
            //ïîéòè ÷åðå break Г*Г® Гї Г*ГҐ ëþáëþ ïðåðûâГ*ГІГј öèêëû
            for(j = 0; j < i && (flag == 0); j++)
            {
                if(arr[i] == arr[j])
                    flag = 1;
            }
            if(flag == 0)//ГІ.ГҐ. ëåâåé Г¤Г*Г*Г*îãî ýëåìåГ*ГІГ* Г*ГҐГІ
            {
                m = m + 1;//Óâåëè÷èâГ*ГҐГ¬ Г±Г·ВёГІГ·ГЁГЄ Г°Г*çëè÷Г*ûõ ýëåìåГ*òîâ
                printf("%d ",arr[i]);
            }
        }
        printf("\nArray contains from %d different numbers\n",m);
        free((void *)arr);//Г—ГЁГ±ГІГЁГ¬ ГЇГ*ìÿòü
    }
    system("pause");
    return 0;
}
1
Миниатюры
Определить количество различных элементов матрицы  
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
27.03.2012, 17:35  [ТС] #4
Благодарю Вас !Спрашиваю для общего свего развития - Память чистить (free((void *)arr);//Чистим память) желательно,обязательно, всегда или в каких случаях ?
0
-=ЮрА=-
Заблокирован
Автор FAQ
27.03.2012, 17:43 #5
Цитата Сообщение от jeka061288 Посмотреть сообщение
желательно,обязательно, всегда или в каких случаях ?
- если алгоритм работает один раз то необязательно после передачи main ОС возвращаемого значения(т.е. после отработки main) ОС добросовестно подчищает за программой все хвосты, так что очистка необязательна. Если же в программе память должна выделяться многократно то чистка обязательна(за редким исключением), иначе засоряем "неуничтоженными остатками массивов и строк" оперативное пространство
1
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.03.2012, 17:44 #6
jeka061288, чистить память нужно, если она была выделена динамически; общее правило — если выделил память, ее нужно потом освободить. При этом приводить указатели необязательно.
1
-=ЮрА=-
27.03.2012, 17:51
  #7

Не по теме:

Nameless One, если отрабатываем 1 раз да ещё в примитивном алгоритме то чистить память необязательно - ОС тоже можно дать поработать

0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.03.2012, 17:53 #8
-=ЮрА=-, необязательно, да, это в моем сообщении подразумевалось
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2012, 17:53
Привет! Вот еще темы с ответами:

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

Определить количество различных эл-тов символьной матрицы - C++
Задана символьная матрица NxM. Определить количество различных элементов матрицы. Т.е. повторяющиеся элементы считать один раз. Прогу...

Определить количество различных элементов в массиве - C++
Задан массив действительных чисел. Определить количество различных элементов в массиве.

Определить количество различных элементов массива - C++
Дан массив a из n целых чисел. Требуется определить количество различных элементов. Формат входных данных На первой строке...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.03.2012, 17:53
Ответ Создать тему
Опции темы

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