Перевести из PASCAL в С# - Сумма элементов и седловые точки - C#

Узнай цену своей работы

Формулировка задачи:

Дана целочисленная прямоугольная матрица. Определить: 1) сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент; 2) номера строк и столбцов всех седловых точек матрицы. Примечание. Матрица A имеет седловую точку ij a , если ij a является минимальным элементом в i-й строке и максимальным в j-м столбце.
const mm=10; mn=10;
var
  a: array [1..mm,1..mn] of Integer;
  mr: array [1..mm] of Integer;
  mc: array [1..mn] of Integer;
  i, j, m, n: Integer;
begin
  repeat
    Write('m [1..',mm,'] n [1..',mn,']: '); ReadLn(m,n);
  until (m in [1..mm]) and (n in [1..mn]);
  Write('Элементы (',m*n,'): ');
  for i:=1 to m do for j:=1 to n do begin
    Read(a[i,j]);
    if (j=1) or (mr[i]>a[i,j]) then mr[i]:=a[i,j];
    if (i=1) or (mc[j]<a[i,j]) then mc[j]:=a[i,j];
  end;
  Write('Седловые точки:');
  for i:=1 to m do for j:=1 to n do
    if (a[i,j]=mr[i]) and (a[i,j]=mc[j]) then Write(' [',i,',',j,']');
  WriteLn;
end.

Решение задачи: «Перевести из PASCAL в С# - Сумма элементов и седловые точки»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            int mm = 10, mn = 10;
            int[,] a = new int[mm, mn];
            int[] mr = new int[mm];
            int[] mc = new int[mn];
            Console.Write("m [1..{0}] n [1..{1}]: ", mm, mn);
            string[] numbers = Console.ReadLine().Split(' ');
            int m = int.Parse(numbers[0]);
            int n = int.Parse(numbers[1]);
            Console.Write("Элементы ({0}): ", m * n);
            for(int i = 0; i < m; i++)
            {
                string[] numbers2 = Console.ReadLine().Split(' ');
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = int.Parse(numbers2[j]);
                }
            }
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if(j == 0 || mr[i] > a[i, j])
                    {
                        mr[i] = a[i, j];
                    }
                    if(i == 0 || mc[j] < a[i, j])
                    {
                        mc[j] = a[i, j];
                    }
                }
            }
            Console.Write("Седловые точки: ");
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if(a[i, j] == mr[i] && a[i, j] == mc[j])
                    {
                        Console.Write("[{0},{1}]", i + 1, j + 1);
                    }
                }
            }
            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5
Похожие ответы