Перевести из 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д