М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
марат172
марат172
16.02.2023 11:10 •  Информатика

Найти минимальные элементы каждой строки матрицы Х(20х20) и поместить их на главную диагональ, а диагональные элементы записать на место минимальных.

👇
Открыть все ответы
Ответ:
twelve2
twelve2
16.02.2023

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

 int a[5][5] =

 {

   {4,-5,8,-3,1},

   {-3,8,-1,1,-8},

   {9,6,6,-3,-7},

   {-7,-3,3,6,-7},

   {7,-3,-6,5,0},

 };

 int b[5][5];

 int i, j, cp, cm, sp, sm;

 setlocale(LC_ALL, "Russian");

 cout << "Массив A";

 for (i = 0; i < 5; i++) {

   cout << endl;

   for (j = 0; j < 5; j++) {

     cout << setw (4) << a[i][j];

   }

 }

 cp = cm = sp = sm = 0;

 for (i = 0; i < 5; i++) {

   for (j = 0; j < 5; j++) {

     if (a[i][j] >= -5)

       b[i][j] = a[i][j];

     else

       b[i][j] = - a[i][j];

     if (a[i][j] > 0) {

       cp++;

       sp += a[i][j];

     }

     if (a[i][j] < 0) {

       cm++;

       sm += a[i][j];

     }

   }

 }

 cout << endl << endl;

 cout << "Среднее значение положительных элементов = " << (float) sp / cp << endl;

 cout << "Среднее значение отрицательных элементов = " << (float) sm / cm << endl << endl;

 cout << "Массив B";

 for (i = 0; i < 5; i++) {

   cout << endl;

   for (j = 0; j < 5; j++) {

     cout << setw(4) << b[i][j];

   }

 }

 return 0;

}

4,6(13 оценок)
Ответ:
vorontsovaksus
vorontsovaksus
16.02.2023
Пусть чисел в отрезке N штук.
тогда сумма подряд идущих чисел, начиная с х будет равна
Sum = Nx + N*(N-1)/2
здесь второе слагаемое - это частичная сумма арифметической прогрессии 0,1,2,3...N
Максимальное значение N будет при нулевом x
1/2 (N - 1) N = 1014
N^2/2 - N/2 - 1014 = 0
N = 1/2 - sqrt(8113)/2 - нехороший корень
N = 1/2 + sqrt(8113)/2 - а это правильный, равный 45,53
Максимальное значение x будет при N=1
x = 1014, это тривиальное решение
Перебирать будем по N, просто меньше перебора
Nx + N*(N-1)/2 = 1014
Nx = 1014 - N*(N-1)/2
x =  1014/N - (N-1)/2 = (2028 - N(N-1))/(2N)
и проверять x на целостность

var 
  x,n,counter:longint;
begin
 counter:=0;
  for n:=1 to 45 do
    if (2028 - N*(N-1))mod(2*N) = 0 then 
    begin
      inc(counter);
      x := (2028 - N*(N-1))div(2*N);
      writeln ('x=',x,' N=',n);
    end;
  writeln('Всего решений ',counter);
end.

а отрезков 6
4,6(23 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ