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

Найти, сколько раз встречается каждый элемент в матрице

21.11.2015, 10:28. Показов 2883. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести матрицу 6х6. Найти, сколько раз встречается каждый элемент.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2015, 10:28
Ответы с готовыми решениями:

Задание: найти, сколько раз каждый элемент встречается в массиве.
Задание: найти, сколько раз каждый элемент встречается в массиве. Дополнительных массивов не...

Подсчитать, сколько раз в символьной матрице встречается каждый символ
Двумерный массив М×N заполнить случайными символами английского алфавита(заглавные). Вывести на...

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

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

2
67 / 65 / 61
Регистрация: 11.11.2015
Сообщений: 392
21.11.2015, 11:34 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
#include <stdio.h>
 
int main()
{
    int matrix[6][6]; //создаем массив-матрицу
    int i,j; //переменные для счетчиков
    int count=0; // создаем счетчик элементов и выставляем в ноль.
    int key; // искомый элемент
    for (i=0;i<6;i++)
    {
        for (j=0;j<6;j++)
        {
            printf("Element [%d][%d] - please enter number: ",i,j);
            scanf("%d",&matrix[i][j]);
        }
    }
    printf("Complete.\n");
    printf("Enter key for search: ");
    scanf("%d",&key);
    for (i=0;i<6;i++)
    {
        for (j=0;j<6;j++)
        {
            if (key == matrix[i][j]) count++;
        }
    }
    printf("Number %d in %d elements",key,count);
    getchar();
    return 0;
}
Добавлено через 7 минут
P.S. Номера массивов в C начинаются с [0][0], в то время как первый элемент матрицы, как правило, A1;1.
Поэтому можно сделать
C
1
printf("Element [%d][%d] - please enter number: ",i+1,j+1);
Тогда нумерация при вводе чисел будет от [1][1], на функционировании программы это никак не скажется. Чисто косметическое изменение.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
22.11.2015, 04:41 3
Лучший ответ Сообщение было отмечено maksim_expert как решение

Решение

lonelyhunter, думаю, не нужно запрашивать значение для подсчёта вхождений, нужно для всех значений, содержащихся в матрице, вывести, по скольку раз оно там встречается.

Такой вариант препод скорее всего не примет, а зря - glib весьма себе удобная либа...
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
#include <stdio.h>
#include <glib.h>
 
#define SIDE (6)
#define MIN_VAL (0)
#define MAX_VAL (10)
 
int main(void) {
    int matrix[SIDE][SIDE], i, j;
    GHashTable * hash;
    GHashTableIter iter;
    gpointer key, value;
    
    for ( i = 0; i < SIDE; ++i )
        for ( j = 0; j < SIDE; ++j )
            matrix[i][j] = g_random_int_range(MIN_VAL, MAX_VAL);
    
    printf("Matrix:\n");
    for ( i = 0; i < SIDE; ++i ) {
        for ( j = 0; j < SIDE; ++j )
            printf("%d ", matrix[i][j]);
        printf("\n");
    }
    
    hash = g_hash_table_new(g_int_hash, g_int_equal);
    
    for ( i = 0; i < SIDE; ++i )
        for ( j = 0; j < SIDE; ++j )
            g_hash_table_insert(hash, &matrix[i][j], GINT_TO_POINTER(GPOINTER_TO_INT(g_hash_table_lookup(hash, &matrix[i][j])) + 1));
    
    printf("Value Count\n");
    g_hash_table_iter_init(&iter, hash);
    while ( g_hash_table_iter_next(&iter, &key, &value) )
        printf("%5d %5d\n", *(int*)key, GPOINTER_TO_INT(value));
    
    g_hash_table_destroy(hash);
    
    return 0;
}
Код
~/cpp/glib $ gcc matrix_values_counter.c `pkg-config --cflags --libs glib-2.0`
~/cpp/glib $ ./a.out 
Matrix:
1 6 4 1 7 3 
7 3 9 5 9 7 
6 7 5 8 9 2 
3 4 1 4 6 9 
7 0 6 7 7 9 
0 2 9 5 4 6 
Value Count
    1     3
    3     3
    4     4
    5     3
    6     5
    7     7
    8     1
    9     6
    2     2
    0     2
~/cpp/glib $
0
22.11.2015, 04:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2015, 04:41
Помогаю со студенческими работами здесь

Посчитать сколько раз встречается каждый элемент в массиве.
Не получается программа. Что не так? #include &lt;stdio.h&gt; using namespace std; const int n = 7;...

Сколько раз каждый элемент списка встречается в дереве?
на входе дерево, причём любое(не обязательно бинарное!, дерево в виде списка) и список элементов,...

Вывести сколько раз встречается в списке каждый элемент
Вывести сколько раз встречается в списке каждый элемент, помогите срочно нужно, в prologе не шарю...

Посчитать сколько раз каждый элемент встречается в массиве
Необходимо посчитать сколько раз в массиве встречается конкретное число. Пример ввода : 1 2 2 3...


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

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