Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
55 / 38 / 20
Регистрация: 30.03.2012
Сообщений: 330

Сумма соседних элементов двумерного массива

24.11.2015, 21:31. Показов 3558. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Подскажите идею по поводу следующей задачи:
Допустим есть двумерный массив 3x4 рандомно заполненный числами от 0 до 3. Как найти все наборы значений этого массива (набор в данном случае - это соседние значения сумма которых равна 6, сосед по диагонали не считается).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2015, 21:31
Ответы с готовыми решениями:

Найти порядковые номера двух соседних элементов массива, сумма которых максимальна
Найти порядковые номера двух соседних элементов массива, сумма которых максимальна. Если таких пар элементов несколько, то найти номера...

Сумма элементов двумерного массива
Найти сумму элементов двумерного массива?

Сумма элементов в столбцах двумерного массива
Вот собственно задание: Задан двухмерный массив вещественных чисел. Заменить все отрицательные элементы нулями и подсчитать сумму...

8
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
24.11.2015, 21:35
nocl1p, тебе чего с ними делать-то надо? Посчитать количество таких наборов? Вывести на экран индексы элементов?
1
55 / 38 / 20
Регистрация: 30.03.2012
Сообщений: 330
24.11.2015, 22:36  [ТС]
Вывести наборы. Индексы тоже бы запомнить, чтобы эти наборы разукрасить в массиве
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
25.11.2015, 21:53
Лучший ответ Сообщение было отмечено nocl1p как решение

Решение

nocl1p, вот сделал через голову за ухо, что-то совсем котелок не варит...

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
#include <iostream>
#include <vector>
#include <random>
#include <chrono>
#include <algorithm>
 
const int ROW_SIZE = 3;
const int COL_SIZE = 4;
 
int get_row_index(int index_of_element_in_sequence)
{
    return ((index_of_element_in_sequence + 1) / ROW_SIZE) - 1;
}
 
int get_col_index(int index_of_element_in_sequence)
{
    return ((index_of_element_in_sequence + 1) % COL_SIZE) - 1;
}
 
int main()
{
    const int VALUE_THAT_MUST_BE_FOUND = 3;
 
    int matrix[ROW_SIZE][COL_SIZE];
    std::default_random_engine gen(std::chrono::system_clock::now().time_since_epoch().count());
    std::uniform_int_distribution<int> distribution(0, 3);
 
    for (int i = 0; i < ROW_SIZE; ++i)
        for (int j = 0; j < COL_SIZE; ++j)
            matrix[i][j] = distribution(gen);
 
    for (int i = 0; i < ROW_SIZE; ++i)
    {
        for (int j = 0; j < COL_SIZE; ++j)
            std::cout << matrix[i][j] << "\t";
        std::cout << "\n";
    }
 
    std::vector<int> vec(ROW_SIZE * COL_SIZE);
 
    for (int i = 0, k = 0; i < ROW_SIZE; ++i)
        for (int j = 0; j < COL_SIZE; ++j, ++k)
            vec[k] = matrix[i][j];
 
    std::vector<int>::iterator it;
    it = std::search_n (vec.begin(), vec.end(), 2, VALUE_THAT_MUST_BE_FOUND);
 
 
    if (it != vec.end())
    {
        int row_index = get_row_index(it - vec.begin());
        int col_index = get_col_index(it - vec.begin());
        std::cout << "\ntwo "
                  << VALUE_THAT_MUST_BE_FOUND
                  << "s found at position: matrix["
                  << row_index << "][" << col_index << "]\n";
    }
    else
        std::cout << "\nmatch not found\n";
 
    return 0;
}
2
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
25.11.2015, 22:32
Цитата Сообщение от gru74ik Посмотреть сообщение
вот сделал через голову за ухо, что-то совсем котелок не варит...
нормальные такие у вас уши
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
26.11.2015, 06:24
Цитата Сообщение от anti-k Посмотреть сообщение
нормальные такие у вас уши
Да непривычно выглядит, пожалуй, только новый <random> из C++11 (да, кстати, тут надо компилятор с поддержкой C++11). Всё вот это вот:
C++
1
2
    std::default_random_engine gen(std::chrono::system_clock::now().time_since_epoch().count());
    std::uniform_int_distribution<int> distribution(0, 3);
Но он поинтереснее старого rand() из <cstdlib>. Короче, код ещё надо потестить и подправить. По-моему, он кривовато работает. Идея простая - копируем обычный двумерный массив поэлементно в одномерный std::vector, а дальше уже с помощью STL работаем непосредственно с вектором. Функция search_n() объявлена в заголовочном файле <algorithm>. Итераторы begin() и end() - это функции-члены класса std::vector (1, 2, 3, 4, 5). Это такие специальный указатели, указывающие на первый элемент вектора и на элемент, следующий за последним.
1
55 / 38 / 20
Регистрация: 30.03.2012
Сообщений: 330
26.11.2015, 17:49  [ТС]
Здесь задача чуть другая решена. Но очень даже неплохо, спасибо. Нужно чтобы программа нашла вот такие последовательности

Сумма должна быть равна шести.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
27.11.2015, 06:20
nocl1p, это посложнее чутка будет.
0
55 / 38 / 20
Регистрация: 30.03.2012
Сообщений: 330
27.11.2015, 22:41  [ТС]
Есть такое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2015, 22:41
Помогаю со студенческими работами здесь

Сумма элементов главной диагонали двумерного массива(матрицы)
Суть в том, что задаётся размерность матрицы (количество строк(i) равно количеству столбцов(j)), после чего складываются элементы у которых...

Нахождение количества строк двумерного массива сумма элементов которых меньше заданного числа
Разработайте программу для нахождения количества строк двумерного массива Mas(nxm), сумма элементов которых меньше заданного числа k. ...

Из двумерного массива сделать одномерный массив, так что бы в него вошла сумма элементов строк
Подскажите в чем ошибка! Вот условие &quot;из двумерного массива сделать одномерный массив, так что бы в него вошла сумма елементов строк (...

Найти два соседних элемента массива, сумма которых максимальна
Доброго времени суток! Прошу помощи в решении следущих задач, которые впрочем можно решить и на Borland C++ Builder, но я предпочитаю...

Найти два соседних элемента массива, сумма которых минимальна
Дан массив.Найдите два соседних элемента,сумма которых минимальнп.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru