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

Написать программу с++, создать матрицу, заполнить рандомными числами,найти максимальный элемент в главной диагонали

👇
Ответ:
ksyusa41
ksyusa41
05.08.2020

#include <iostream>

#include <cstdlib>

#include <ctime>

int main()

{

   int N;

   

   std::cout << "Введите количество строк и столбцов(N): ";

   std::cin >> N;

   

   //выделяем память

   int** arr = new int* [N];

   for(int i = 0; i < N; i++)

       arr[i] = new int [N];

   

   srand(time(NULL));//рандомизация

   

   std::cout << "Матрица имеет вид: " << std::endl;

   //заполняем массив случайными числами

   for(int i = 0; i < N; i++)

   {

       for(int j = 0; j < N; j++)

       {

           arr[i][j] = 1 + rand() % 100; // от 1 до 100

           std::cout << arr[i][j] << " ";

       }

       std::cout << std::endl;

   }

   

   //ищем максимальное число

   int max = arr[0][0];

   for(int i = 0, j = 0; i < N, j < N; i++, j++)

   {

       if(arr[i][j] > max)

           max = arr[i][j];

   }

   

   std::cout << std::endl << "Наибольшее число на главной диагонали: " << max;

   

   //удаляем память

   for(int i = 0; i < N; i++)

       delete[] arr[i];

   delete[] arr;    

   

   return 0;

}

4,6(22 оценок)
Открыть все ответы
Ответ:
mandarinka3001
mandarinka3001
05.08.2020
1. Современное решение, когда можно решить "в одну строку"

// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString
    .Where(d->Pos(d,'13579')>0)).SelectMany(c->c)
    .Select(c->c.ToDigit).Sum)
end.

Пример
252 337 105
S=24

2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)

var
  m,i,j,s,d:integer;
begin
  s:=0;
  for i:=1 to 3 do begin
    Read(m);
    for j:=1 to 3 do begin
      d:=m mod 10;
      if d mod 2<>0 then s:=s+d;
      m:=m div 10
      end
    end;
  Writeln('S=',s)
end.
4,4(82 оценок)
Ответ:
alliance234
alliance234
05.08.2020
1. Современное решение, когда можно решить "в одну строку"

// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString
    .Where(d->Pos(d,'13579')>0)).SelectMany(c->c)
    .Select(c->c.ToDigit).Sum)
end.

Пример
252 337 105
S=24

2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)

var
  m,i,j,s,d:integer;
begin
  s:=0;
  for i:=1 to 3 do begin
    Read(m);
    for j:=1 to 3 do begin
      d:=m mod 10;
      if d mod 2<>0 then s:=s+d;
      m:=m div 10
      end
    end;
  Writeln('S=',s)
end.
4,6(58 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ