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

Матрицы. Определить количество различных значений

15.01.2013, 21:27. Показов 8207. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана задача по СИ++

Задана матрица размером NхM. Определить количество различных
значений матрицы, т.е. повторяющиеся элементы считать один раз.



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
int main()
{
        double **a, s, rez;
        int i, j, n, m, k, g;
        printf("N = ");
        scanf("%d",&n);
        printf("M = ");
        scanf("%d",&m);
        a = new double*[m];
        for(i=0; i<n;i++)
                a[i] = new double[m];
    puts("\nA:");
        for(i=0; i<n;i++)
                for(j=0; j<m;j++) scanf("%lf", &a[i][j]);
        rez = 0;
        for (i=0;i<n;i++)
                for (j = 0;j<m;j++)
                {
                if (a[i][j]!=1000000)
                {
                rez++;
                for (k = 0;k < n;k++)
                        for(g = 0;g < m;g++)
                                if ((a[k][g]==a[i][j])&&(k!=i||g!=j))
                                        a[k][g]=1000000;
                a[i][j] = 1000000;
                }
                }
        printf("REZ = %4.0lf",rez);
        delete []a;
        puts("\n delete !");
        getch();
 
        return 0;
}
//---------------------------------------------------------------------------

вот её код реализован - верно.
Можете помочь подписать его?( и понять что там делается
к примеру : scanf("%d",&n); - ввод с клавиатуры ("n") . Разобрать условие( Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2013, 21:27
Ответы с готовыми решениями:

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

Определить количество различных элементов матрицы
Помогите ,пожалуйста ,реализовать программу на языке Си . Определить количество различных элементов...

Определить количество различных элементов матрицы
Задана символьная матрица размером NxM. Определить количество различных элементов матрицы (т.е....

Определить количество различных элементов матрицы
Дана целая квадратная матрица порядка N. Определить количество различных элементов матрицы (то есть...

15
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
15.01.2013, 21:32 2
Отформатируйте код. Кнопка C++
1
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 7
15.01.2013, 21:36  [ТС] 3
я не знаю , как это сделать((
0
101 / 101 / 39
Регистрация: 17.04.2011
Сообщений: 554
15.01.2013, 21:40 4
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
int main()
 {
 double **a, s, rez;
 int i, j, n, m, k, g;
 printf("N = ");
 scanf("%d",&n);
 printf("M = ");
 scanf("%d",&m);
 a = new double*[m];
 for(i=0; i<n;i++)
 a[i] = new double[m];
 puts("\nA:");
 for(i=0; i<n;i++)
 for(j=0; j<m;j++) scanf("%lf", &a[i][j]);
 rez = 0;
 for (i=0;i<n;i++)
 for (j = 0;j<m;j++)
 {
 if (a[i][j]!=1000000)
 {
 rez++;
 for (k = 0;k < n;k++)
 for(g = 0;g < m;g++)
 if ((a[k][g]==a[i][j])&&(k!=i||g!=j))
 a[k][g]=1000000;
 a[i][j] = 1000000;
 }
 }
 printf("REZ = %4.0lf",rez);
 delete []a;
 puts("\n delete !");
 getch();
 
 return 0;
 }
 //---------------------------------------------------------------------------
2
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 7
15.01.2013, 21:41  [ТС] 5
спасибо)) Теперь , если кто может помогите пжл. подписать его(
0
101 / 101 / 39
Регистрация: 17.04.2011
Сообщений: 554
15.01.2013, 21:41 6
Цитата Сообщение от Lenex Посмотреть сообщение
я не знаю , как это сделать((
на будущее в сообщениях нажимаешь С++ и между этими блоками вставляешь свой код
1
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 7
15.01.2013, 21:55  [ТС] 7
Кто знает, помогите растолковать условие,плз
0
101 / 101 / 39
Регистрация: 17.04.2011
Сообщений: 554
15.01.2013, 21:58 8
прокоментировать каждую строку чтоли?
0
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
15.01.2013, 21:58 9
Сейчас напишу комментарий
0
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 7
15.01.2013, 22:16  [ТС] 10
Ну до заполнения массива числами я понимаю)) но вот условие совсем не понимаю, что они по действиям делают, чтобы в результате выдавала число разных чисел в массиве.

Добавлено через 16 минут
подпишите ?(
0
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
15.01.2013, 22:23 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
rez = 0;
for (i=0; i<m; i++)         // цикл по строкам
    for (j = 0; j<n; j++)   // цикл по столбцам
    {
        if (a[i][j]!=1000000)   // если значение в a[i][j] не равно 1000000 то
            rez++;              // res увеличивает на 1
 
        // эти циклы повторно проходят всю матрицу
        for (k=0; k<m; k++)
            for(g=0; g<n; g++)
                if ((a[k][g]==a[i][j])&&(k!=i || g!=j))
                {
                    a[k][g]=1000000;
                }
    }
Пытаюсь разобраться и не могу

Добавлено через 29 секунд
Не пойму как она считает количество разных чисел в матрице
1
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 7
15.01.2013, 22:25  [ТС] 12
хех,спасибо, за помощь хоть какую) а может можно тогда по другому как-нибудь решить ее?(
0
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
15.01.2013, 22:28 13
Цитата Сообщение от Lenex Посмотреть сообщение
а может можно тогда по другому как-нибудь решить ее?(
А зачем? Я вот проверил ее у себя. И ведь правильно все считает.

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    double **a, s, rez;
    int i, j, n, m, k, g;
 
    printf("M = ");  cin >> m; //scanf("%d",&m);
    printf("N = ");  cin >> n; //scanf("%d",&n);
 
    // выделение памяти для двумерного массива
    a = new double*[m]; 
    for(i=0; i<m;i++)
        a[i] = new double[n];
 
    puts("\nA:");
 
    // заполнение массива
    for(i=0; i<m;i++)
        for(j=0; j<n; j++) 
            cin >> a[i][j];
            //scanf("%lf", &a[i][j]);
 
    rez = 0;
    for (i=0;i<m;i++)
        for (j = 0;j<n;j++)
        {
            if (a[i][j]!=1000000)
                rez++;
 
            for (k=0; k<m; k++)
                for(g=0; g<n; g++)
                    if ((a[k][g]==a[i][j])&&(k!=i || g!=j))
                    {
                        //rez++;
                        a[k][g]=1000000;
                    }
        }
 
 
    //printf("REZ = %4.0lf",rez);
    cout << "REZ = " << rez << endl;
 
    for (int i=0; i<m; i++)
        delete [] a[i];
    delete [] a;
 
    puts("\n delete !");
 
    getch();
 
    system("pause");
    return 0;
}


Некоторые ошибки исправил и немного изменил
2
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 7
15.01.2013, 22:30  [ТС] 14
спасибо,большое) что уделил время)
0
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
15.01.2013, 22:32 15
Да не за что) Может кто другой решит
0
0xv
15.01.2013, 22:39     Матрицы. Определить количество различных значений
  #16

Не по теме:

Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
Не пойму как она считает количество разных чисел в матрице
Он повторяющиеся элементы заменяет числом 1000000 и считает количество чисел отличных от 1000000.
Ты заполни матрицу этим только этим числом(1000000 ) (полностью) и увидишь что он высчитает не правильно.

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2013, 22:39

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru