
Дан массив A (7,7). Найдите произведение отрицательного элемента, расположенного не на главной
диагонали, и наибольшего элемента массива (максимального). *НА ЯЗЫКЕ С++* СРОЧНО!! заранее СПАСИБО))

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

Відповідь:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void randarr(int **arr,int n, int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
arr[i][j] = rand() % 8 - 2;
}
}
}
void printarr(int **arr,int n,int m){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cout << arr[i][j] << "\t";
}
cout << endl;
}
}
int prnegative(int **arr,int n,int m){
int product = 1;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(j != i && arr[i][j] < 0){
product *= arr[i][j];
}
}
}
return product;
}
int maxarr(int **arr,int n, int m){
int max = arr[0][0];
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(arr[i][j] > max){
max = arr[i][j];
}
}
}
return max;
}
const int n = 7, m = 7;
int main(){
srand(time(NULL));
setlocale(LC_ALL, "Rus");
int **arr = new int *[n];
for (int i = 0; i < n; i++)
arr[i]=new int[m];
randarr(arr,n,m);
printarr(arr,n,m);
cout << "\nПроизведение отрицательных елементов не на главной диагонали = " << prnegative(arr,n,m) << endl;
cout << "Максимальный елемент массива = " << maxarr(arr,n,m) << endl;
for (int i = 0; i < n; i++)
delete[]arr[i];
delete[]arr;
return 0;
}
Пояснення:



Конечно! Вот пример решения данной задачи на языке C++:
cpp#include <iostream>
#include <climits>
int main() {
int A[7][7] = {
{-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}
};
int maxElement = INT_MIN;
int product = 1;
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
if (i != j && A[i][j] < 0) {
product *= A[i][j];
}
if (A[i][j] > maxElement) {
maxElement = A[i][j];
}
}
}
std::cout << "Произведение отрицательного элемента, не находящегося на главной диагонали, и наибольшего элемента массива: " << product * maxElement << std::endl;
return 0;
}
В этом примере мы объявляем двумерный массив A
размером 7x7 и инициализируем его значениями. Затем мы используем два вложенных цикла for
, чтобы перебрать все элементы массива. Внутри циклов мы проверяем условие: если индексы i
и j
не равны (что означает, что элемент не находится на главной диагонали) и значение элемента A[i][j]
отрицательное, то мы умножаем это значение на переменную product
. Также мы обновляем переменную maxElement
, если текущий элемент больше предыдущего максимального элемента.
По завершении перебора массива выводим результат произведения отрицательного элемента, не находящегося на главной диагонали, и наибольшего элемента массива.
Примечание: Вам может потребоваться внести некоторые изменения в код, чтобы адаптировать его к вашей конкретной ситуации или способу представления массива.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili