Дана действительная квадратная матрица порядка 9. Вычислить сумму тех из её элементов, расположенных на главной диагонали и выше неё, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше неё нету элементов с указанным свойством, то ответом должно служить сообщение об этом.
1 | 3 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 4 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 5 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
Ответ | 14 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Ответ | Нету элементов с такими свойствами |
Находим наибольший из нижних элементов (элементы, расположенные ниже главной диагонали). Потом сравниваем каждый элемент верхнего множества (элементы, расположенные выше главной диагонали и на самой диагонали) с наибольшим элементов ([latex]bigger[/latex]) всех нижних элементов и если это число больше, то прибавляем это число к переменной [latex]summa[/latex].
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 |
#include <iostream> using namespace std; int main() { int size = 9; bool ok = false; double mat[size][size];//Матрица 9 на 9 for(int vert = 0;vert < size;vert++)//вводим матрицу { for(int gor = 0;gor < size;gor++) { cin >> mat[vert][gor]; } } double bigger = mat[1][0],summa = 0.0;//bigger (наибольший элемент нижжней треугольнйо матрицы диагонали) for(int vert = 1;vert < size;vert++)//(Находим этот элемент) { for(int gor = 0;gor < vert;gor++) { if(bigger < mat[vert][gor]){ bigger = mat[vert][gor]; } } } for(int vert=0;vert < size;vert++)//Проверка каждого диагонального элемента и элементов выше диагонали,на то,больше ли он bigger или нет,и если больше,то увеличиваем переменную summa на этот элемент { for(int gor=vert;gor < size;gor++) { if(mat[vert][gor] > bigger) { ok = true; summa+=mat[vert][gor]; } } } if(ok)//Провека для вывода ответа { cout << summa; } else { cout << "Нету элементов с такими свойствами"; } return 0; } |
Java
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 |
/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); int size = 9; boolean ok = false; double[][] mat = new double[size][size];//Матрица 9 на 9 for(int vert = 0;vert < size;vert++)//вводим матрицу { for(int gor = 0;gor < size;gor++) { mat[vert][gor] = in.nextDouble(); } } double bigger = mat[1][0],summa = 0.0;//bigger (наибольший элемент нижжней треугольнйо матрицы диагонали) for(int vert = 1;vert < size;vert++)//(Находим этот элемент) { for(int gor = 0;gor < vert;gor++) { if(bigger < mat[vert][gor]){ bigger = mat[vert][gor]; } } } for(int vert=0;vert < size;vert++)//Проверка каждого диагонального элемента и элементов выше диагонали,на то,больше ли он bigger или нет,и если больше,то увеличиваем переменную summa на этот элемент { for(int gor=vert;gor < size;gor++) { if(mat[vert][gor] > bigger) { ok = true; summa+=mat[vert][gor]; } } } if(ok)//Провека для вывода ответа { System.out.println(summa); } else { System.out.println("Нету элементов с такими свойствами"); } } } |