Вопрос задан 15.11.2023 в 05:24. Предмет Информатика. Спрашивает Яндыбаева Людмила.

НАПИСАТЬ КОД НА С++ Дана действительная квадратная матрица размером nxn. Получить

x1xn+x2xn-1+...+xnx1, где хi — наименьшее значение элементов i-го столбца данной матрицы.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гутырчик Альбина.

Ответ:

#include <stdio.h>

#include <stdlib.h>

//#include <time.h>

int main(void)

{

int x, i, j, n, b;

int M[n-1][n-1];

b = 1;

n = 2 + rand()%21; // граничение сверху, потому что если больше, то буфер переполняется

printf("%d", n); // смотрю, какой n создался

for (i=0;i < n;i++) //заполнение массива

{

for (j=0;j < n;j++)

{

M[i][j] = rand()%49;

//printf (" %d", i);

printf (" %d", M[i][j]);

}

}

/*

for (i=0;i < n;i++) //проверка массива

{

for (j=1;j < n;j++)

{

if (M[i][j]>M[i][j-1])

{

b = 0;

}

}

if (b == 1)

{

printf(" %d", 1);

}

else

{

printf(" %d", 0);

}

b = 1;

} */

printf(" %d", M[0][0]); // проверяю значения массива во второй раз

printf(" %d", M[0][1]);

printf(" %d", M[0][2]);

printf(" %d", M[1][0]);

printf(" %d", M[1][1]);

printf(" %d", M[1][2]);

printf(" %d", M[2][0]);

printf(" %d", M[2][1]);

printf(" %d", M[2][2]);

}

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для начала определим функцию, которая будет находить минимальное значение элементов столбца:

```c++ #include #include #include using namespace std;

int findMin(vector>& matrix, int col) { int minVal = INT_MAX; for (int i = 0; i < matrix.size(); i++) { minVal = min(minVal, matrix[i][col]); } return minVal; } ```

Здесь мы проходим по всем элементам столбца с индексом `col` и находим минимальное значение.

Теперь создадим функцию, которая будет формировать новую матрицу `result`, где элементы будут сформированы в требуемом порядке:

```c++ vector> transformMatrix(vector>& matrix) { int n = matrix.size(); vector> result(n, vector(n));

for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { result[i][j] = findMin(matrix, (i + j) % n); } }

return result; } ```

Здесь мы проходим по всем элементам новой матрицы `result` и для каждого элемента находим минимальное значение в столбце `(i + j) % n`.

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

```c++ int main() { // Пример исходной матрицы vector> matrix = { {9, 8, 7}, {6, 5, 4}, {3, 2, 1} };

vector> result = transformMatrix(matrix);

// Вывод новой матрицы for (int i = 0; i < result.size(); i++) { for (int j = 0; j < result[i].size(); j++) { cout << result[i][j] << " "; } cout << endl; }

return 0; } ```

Результат выполнения программы будет:

``` 1 1 1 2 2 2 3 3 3 ```

Таким образом, мы получаем новую матрицу, где каждый элемент формируется путем нахождения минимального значения в столбце, вычисленного по формуле `x1xn + x2xn-1 + ... + xnx1`.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос