Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <limits.h>
- #include <stdlib.h>
- #include <time.h>
- #include <vector>
- using namespace std;
- vector<vector<int>> initFromKeyboard(int N) {
- vector<vector<int>> matrix(N);
- for (int i = 0; i < N; ++i) {
- for (int j = 0; j < N; ++j) {
- int tmp;
- cin >> tmp;
- //обращаемсы к массиву в массиве, записываем в него элемент из клавиатуры
- matrix.at(i).push_back(tmp);
- }
- }
- return matrix;
- }
- vector<vector<int>> initByRand(int N) {
- vector<vector<int>> matrix(N);
- srand(time(0));
- for (int i = 0; i < N; ++i) {
- for (int j = 0; j < N; ++j) {
- //обращаемсы к массиву в массиве, записываем в него элемент из клавиатуры
- matrix.at(i).push_back(rand());
- }
- }
- return matrix;
- }
- void findMinColAndVal(int N, vector<vector<int>> matrix, int *minVal, int *minCol) {
- for (int i = 0; i < N; ++i) {
- for (int j = 0; j < N; ++j) {
- int tmp = matrix.at(i).at(j);
- //ищем минимальный элемент среди введенных и запоминаем его столбец
- if (tmp < *minVal) {
- *minVal = tmp;
- *minCol = j;
- }
- }
- }
- }
- int main() {
- int N;
- cout << "Enter matrix size\n";
- //вводим размер матрицы
- cin >> N;
- cout << "1)Initialize from keyboard\n2)Initialize by random\n";
- int opt;
- cin >> opt;
- int minCol = 0;
- int minVal = INT_MAX;
- //сама матрица
- //получается мы храним в массиве массивы
- vector<vector<int>> matrix;
- switch (opt) {
- case 1:
- matrix = initFromKeyboard(N);
- break;
- case 2:
- matrix = initByRand(N);
- break;
- }
- findMinColAndVal(N, matrix, &minVal, &minCol);
- int sum = 0;
- //ищем сумму столбца с минимальным значением
- for (int i = 0; i < N; ++i) {
- sum += matrix.at(i).at(minCol);
- }
- //выводим минимальный элемент
- cout << "Min Element is: " << minVal << '\n';
- //выводим среднее значение
- cout << "Average sum is: " << sum * 1.0 / N << '\n';
- //выводим левый нижний угол, а значит все элементы до элемента главной диагонали включительно, индексы главной диагонали соответствено i=j=что то
- for (int i = 0; i < N; ++i) {
- for (int j = 0; j <= i; ++j) {
- cout << matrix.at(i).at(j) << ' ';
- }
- cout << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment