?>
Тапочки у меня в прихожей стоят в ряд 20 тапочек – 10 левых и 10 правых. приходя домой, я переобуваюсь и выбираю два тапочка – левый и правый, в которые мне удобнее всего засунуть ноги. естественно, что левый тапочек должен стоять левее правого, и расстояние (количество других тапочек) между ними должно быть как можно меньше. напишите программу, которая вычисляет, сколько же тапочек стоит между теми, которые мне удобнее всего надеть. входные данные вводится последовательность из 10 нулей и 10 единиц, записанных в некотором порядке. единица соответствует левому тапочку, 0 – правому тапочку. числа разделены пробелами. выходные данные программа должна вывести количество тапочек между самыми удобными тапочками, или -1, если таких нет.
Ответы
#include <iostream> // подключаем библиотеку потокового ввода/вывода (cout/cin/...);
#include <ctime> // подключем библиотеку для возможности изменения стандартного генератора чисел (srand(...));
int main()
{
using namespace std; // используем пространство имен std;
setlocale(LC_ALL, "ru"); // возможность использования русского текста в консоли;
srand(time(NULL)); // генератор случайных числе;
const int N = 10; // константный размер массива;
int A[N][N]; // обьявление двумерного массива;
cout << "Исходный двумерный массив: " << endl;
for (int i = 0; i < N; i++) // проходим по двумерному массиву используя 2 цикла;
{
for (int j = 0; j < N; j++)
{
A[i][j] = rand() % 50; // заполняем двумерный массива случайными числами от 0 до 50;
cout << A[i][j] << '\t'; // и сразу выводим его на экран;
}
cout << endl;
}
// ищем минимальное значение в массиве:
int min = A[0][0]; // предположим, что первый элемент массива это минимальный элемент;
for (int i = 0; i < N; i++) // проходим по двумерному массиву используя 2 цикла;
{
for (int j = 0; j < N; j++)
{
// если текущий элемент массива меньше min, тогда присваиваем переменной min это значение. Таким образом мы найдем минимальный элемент;
if (min > A[i][j]) // если в теле условия/цикла ожидается 1 инструкция, то { } можно не ставить;
min = A[i][j];
}
}
// обнуляем все элементы массива, кроме элементов, расположеных на главной диагонали:
for (int i = 0; i < N; i++) // проходим по двумерному массиву используя 2 цикла;
{
for (int j = 0; j < N; j++)
{
// если i будет равен j, то получится что мы идем по глвной диагонали: i=1:j=1, i=2:j=2, i=3:j=3 ...
// поэтому, если i не равен j обнуляем элемент;
if (i != j)
A[i][j] = 0;
}
}
cout << "\nРезультат: " << endl;
for (int i = 0; i < N; i++) // проходим по двумерному массиву используя 2 цикла;
{
for (int j = 0; j < N; j++)
{
cout << A[i][j] << '\t'; // выводим то что получилось в консоль;
}
cout << endl;
}
cout << "\nМинимальный элемент в двумерном массиве = " << min << endl;
return 0;
}