From 098055c0ecdecd539c49cbfc74a5aefb66c8e776 Mon Sep 17 00:00:00 2001 From: Anton Chernikov Date: Thu, 13 Dec 2018 01:43:06 +0300 Subject: [PATCH 1/2] Added first version of test 3.2 --- sem1/test3/test3.2/file.txt | 3 ++ sem1/test3/test3.2/main.cpp | 87 +++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 sem1/test3/test3.2/file.txt create mode 100644 sem1/test3/test3.2/main.cpp diff --git a/sem1/test3/test3.2/file.txt b/sem1/test3/test3.2/file.txt new file mode 100644 index 0000000..1c8600f --- /dev/null +++ b/sem1/test3/test3.2/file.txt @@ -0,0 +1,3 @@ +2 3 +1 2 3 +4 5 6 \ No newline at end of file diff --git a/sem1/test3/test3.2/main.cpp b/sem1/test3/test3.2/main.cpp new file mode 100644 index 0000000..fb2d501 --- /dev/null +++ b/sem1/test3/test3.2/main.cpp @@ -0,0 +1,87 @@ +#include +#include +using namespace std; + +int readNumber(ifstream &file, char &symbol, char barrier); +void fillMatrix(int **matrix, ifstream &file, int height, int length, char &symbol); + +const char *nameOfFile = "file.txt"; + +int main() +{ + ifstream file(nameOfFile); + char symbol = '\0'; + file.get(symbol); + int height = readNumber(file, symbol, ' '); + int length = readNumber(file, symbol, '\n'); + int **matrix = new int *[height] {}; + for (int i = 0; i < height; i++) + { + matrix[i] = new int[length] {}; + } + fillMatrix(matrix, file, height, length, symbol); + file.close(); + int count = 0; + for (int i = 0; i < height; i++) + { + int min = 0x7FFFFFFF; + for (int j = 0; j < length; j++) + { + if (matrix[i][j] < min) + { + min = matrix[i][j]; + } + } + for (int j = 0; j < length; j++) + { + if (matrix[i][j] == min) + { + int max = 0; + for (int k = 0; k < height; k++) + { + if (matrix[k][j] > max) + { + max = matrix[k][j]; + } + } + for (int k = 0; k < height; k++) + { + if (k == i && matrix[k][j] == max) + { + count++; + cout << count << ". " << k << "," << j << " - " << min << endl; + } + } + } + } + } + for (int i = 0; i < height; i++) + { + delete[] matrix[i]; + } + delete[] matrix; +} + +int readNumber(ifstream &file, char &symbol, char barrier) +{ + int result = 0; + while (symbol != barrier && !file.eof()) + { + result = result * 10 + (symbol - '0'); + file.get(symbol); + } + file.get(symbol); + return result; +} + +void fillMatrix(int **matrix, ifstream &file, int height, int length, char &symbol) +{ + for (int i = 0; i < height; i++) + { + for (int j = 0; j < length - 1; j++) + { + matrix[i][j] = readNumber(file, symbol, ' '); + } + matrix[i][length - 1] = readNumber(file, symbol, '\n'); + } +} From e5c52c9f2c89bd7147dd7c57c4eb87366ffbc6be Mon Sep 17 00:00:00 2001 From: Anton Chernikov Date: Thu, 13 Dec 2018 01:48:21 +0300 Subject: [PATCH 2/2] test 3.2 --- sem1/test3/test3.2/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/sem1/test3/test3.2/main.cpp b/sem1/test3/test3.2/main.cpp index fb2d501..ed8e0c9 100644 --- a/sem1/test3/test3.2/main.cpp +++ b/sem1/test3/test3.2/main.cpp @@ -62,6 +62,7 @@ int main() delete[] matrix; } + int readNumber(ifstream &file, char &symbol, char barrier) { int result = 0;