Playintim405374
?>

В двумерном массиве найти сумму всех элементов и разделить на нее элементы первого столбца. С Оформить в виде функций.

Информатика

Ответы

kizyaev6651

Здравствуйте ! Вы не указали, каким образом должен заполняться массив (рандомом или с клавиатуры), поэтому я решила заполнить его рандомными числами. При необходимости можете изменить интервал.

#include <iostream>

#include <clocale>

using namespace std;

int main()

{

   int sum = 0;

   const int rows = 8;

   const int cols = 8;

   int arr[rows][cols];

   setlocale(LC_ALL, "Russian");

   for (int i = 0; i < rows; i++)

   {

       for (int j = 0; j < cols; j++)

       {

           arr[i][j] = rand() % 10;

           cout << arr[i][j] << " ";

       }

       cout << endl;

   }

   cout << endl << endl;

   for (int i = 0; i < rows; i++)

   {

       for (int j = 0; j < cols; j++)

           sum = arr[i][j] + sum;

   }

   cout << "Сумма элементов массива: " << sum << endl;

   cout << endl;

   for (int i = 0; i < rows; i++)

   {

       for (int j = 0; j < cols; j++)

       {

           if (j == 0)

               arr[i][j] = arr[i][j] / sum;

           cout << " " << arr[i][j];

       }

       cout << endl;

   }

   return 0;

}

Объяснение:

elena-ruzadom
Учитывая, что 8 букв можно переставить примерно 40 тысячами можно просто запустить поиск в ширину, сохранить для всех перестановок то, из какой строчки они получились, и потом восстановить ответ для строчки abcdefgh.

Код на python 3:
from queue import Queue

to_process = Queue()
to_process.put(("edghcbfa", None))
prec = {}

while not to_process.empty():
    s, prev = to_process.get()
    if s in prec:
        continue
    for i in range(7):
        for j in range(i + 1, 8):
            if i == 0:
                next_s = s[j::-1] + s[j+1:]
            else:
                next_s = s[:i] + s[j:i-1:-1] + s[j+1:]
            if next_s not in prec:
                to_process.put((next_s, s))
    prec[s] = prev

current = "abcdefgh"
print(current)
while prec[current] is not None:
    current = prec[current]
    print(current)

Вывод программы:
abcdefgh
edcbafgh
edcbhgfa
edbchgfa
edghcbfa
monolit-kolomna
Учитывая, что 8 букв можно переставить примерно 40 тысячами можно просто запустить поиск в ширину, сохранить для всех перестановок то, из какой строчки они получились, и потом восстановить ответ для строчки abcdefgh.

Код на python 3:
from queue import Queue

to_process = Queue()
to_process.put(("edghcbfa", None))
prec = {}

while not to_process.empty():
    s, prev = to_process.get()
    if s in prec:
        continue
    for i in range(7):
        for j in range(i + 1, 8):
            if i == 0:
                next_s = s[j::-1] + s[j+1:]
            else:
                next_s = s[:i] + s[j:i-1:-1] + s[j+1:]
            if next_s not in prec:
                to_process.put((next_s, s))
    prec[s] = prev

current = "abcdefgh"
print(current)
while prec[current] is not None:
    current = prec[current]
    print(current)

Вывод программы:
abcdefgh
edcbafgh
edcbhgfa
edbchgfa
edghcbfa

Соответственно, ответ такой:
G B
B C
H A
E A

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

В двумерном массиве найти сумму всех элементов и разделить на нее элементы первого столбца. С Оформить в виде функций.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

namik120939
Вадимовна
ibird777
хуйдрочил_Анастасия
Dragun1684
tsigankova2018
Элизбарян
Jannadon77
apro3444595
Андрей_Станиславовна
впвыпвып-Зуйков629
saltikovaK.S.1482
marinanx
nebo2020
Ivan1568