Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <cstdio> //подключение заголовочных файлов
- #include <ctime>
- #include <iostream>
- const size_t MAX_SIZE = 100; // обьявляем и инициализируем константу
- int random(const double a, const double b) // функция принимающая 2 переменные типа const double и осуществляющая генерацию "рандомного числа"
- {
- double rnd = double(rand()) / RAND_MAX;
- return a + (b - a) * rnd;// функция типа int возвращает целые числа
- }
- int similar(int rows, int cols, int Arr[][MAX_SIZE]) // функция возвращающая номер строки с максимальным количеством одинаковых символов
- {
- int max_rows = 0;
- int counter = 0;
- int max_counter = 0;
- for (int i = 0; i < rows; ++i) {//заносим по мере прохождения строк, индекс максимальной строки
- if (counter > max_counter)
- {
- max_counter = counter;
- max_rows = i;
- }
- counter = 0;
- for (int j = 0; j < cols; j++) {//считаем сколько одинаковых элементов с строке
- for (int k = j; k < cols; k++) {
- if (j != k) {
- if (Arr[i][j] == Arr[i][k]) counter++;
- }
- }
- }
- }
- return max_rows;
- }
- void Outputting_Matrix(int Arr[][MAX_SIZE], const int rows, const int cols) { //функция для вывода двумерного массива
- for (int i = 0; i < rows; i++) {
- printf("\n");
- printf("A[%d]=", i + 1);
- for (int j = 0; j < cols; j++) {
- printf("%d ", Arr[i][j]);
- }
- }
- printf("\n");
- }
- int main() {
- srand(time(NULL)); //Генерирует случайное число, используя текущею дату, как параметр, как бы для непредсказуемости результата
- setlocale(LC_ALL, "Russian"); //Добавляем возможность использования русского языка
- int Arr[MAX_SIZE][MAX_SIZE]; //Создаем двумерный массив
- printf("Выберите размер матрицы:\n Колличество строк: "); //вывод на экран сообщения
- int rows; //обьявляем переменную типа int
- scanf_s("%d", &rows); // считываем и записываем в переменную
- printf("Колличество столбцов: "); //вывод на экран сообщения
- int cols; //обьявляем переменную типа int
- scanf_s("%d", &cols); // считываем и записываем в переменную
- while ((rows <= 0) || (cols <= 0)) { //выводим сообщение об ошибке до тех пор пока не введут натуральное число
- printf("Числа не должны быть отрицательными!!!!\n");
- printf("Колличество строк: ");
- scanf_s("%d", &rows);
- printf("Колличество столбцов: ");
- scanf_s("%d", &cols);
- }
- printf("Выберите способ заполнения массива :\n 1-ручной ввод , любое другое число - с помощью генератора случайных чисел ");
- int your_choice;
- scanf_s("%d", &your_choice);
- if (your_choice == 1) { // Если пользователь вводит 1 запускаем цикл для заполнения массива с клавиатуры
- printf("Введите матрицу:\n");
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < cols; j++) {
- scanf_s("%d", &Arr[i][j]);
- }
- }
- }
- else { // в случае ввода любого другого числа , массив заполняется автоматически
- for (int i = 0; i < rows; ++i) {
- for (int j = 0; j < cols; j++) {
- Arr[i][j] = random(-1000, 1000);
- }
- }
- }
- Outputting_Matrix(Arr, rows, cols); //Выводим полученную матрицу на экран
- printf("строка с наибольшим количеством одинаковых чисел=%d", similar(rows, cols, Arr)); //выводим результат
- return 0; //Возвращаем 0 , что означает что программа завершена без ошибок (можно было явно и не прописывать)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement