Предмет: Информатика, автор: JJasont0

Помогите, пожалуйста, с алгоритмами.
Комбинированные алгоритмические структуры:

В массиве размером NxN найти
наименьшее число и обнулить все
элементы, кроме элементов
главной диагонали
(Нужно нарисовать алгоритм, и объяснить, как что делать)


smartemii03jurma: Могу просто объяснить
JJasont0: Пожалуйста

Ответы

Автор ответа: SergeySerg2002
0

Ответ:

#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;

}

Похожие вопросы
Предмет: Русский язык, автор: Elena7777