AnnaChulyukanova3
?>

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

Информатика

Ответы

sport2293032

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

}

Матвеев
Пусть чисел в отрезке 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

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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

Популярные вопросы в разделе

Galliardt Sergeevna1284
cafegasoil
bogatskayaa
Андрей Анна22
Neveselova
kurlasku
Olga_Vyacheslavovich1054
lubavarif83
Воздвиженская
Сергеевна-Иван1045
galinaobraz
Михайловна991
minchevaelena23
Tuzov
Владимирович_Слабый