Дан массив 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
