
Помогите пожалуйста срочно нужно. c#Дана матрица размером MxN. Найдите первый номер пути, и
содержание в нем элементов должно быть правильным и отрицательным (нулевое значение не считается элементом матрицы). Если такового нет, то нужно вывести 0.

Ответы на вопрос

Ответ:
#include <iostream>
using namespace std;
int main()
{
setlocale(0,"");
cout<<"Введите размеры";
int n,m;
cin>>m>>n;
int** a = new int*[m];
for (int i = 0; i<m; i++){
a[i] = new int[n];
}
cout<<"Вводите элементы: "<<endl;
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cin>>a[i][j];
}
cout << endl;
}
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cout<<a[i][j]<<" ";
}
cout << endl;
}
cout << "===================" << endl;
///
int tmax,tmin,t;
for(int j=0; j<n; j++)
{
tmin=0;
tmax=0;
for(int i=0; i<m; i++)
{
if(a[i][j]<a[tmin][j]) tmin=i;
if(a[i][j]>a[tmax][j]) tmax=i;
}
t=a[tmin][j];
a[tmin][j]=a[tmax][j];
a[tmax][j]=t;
}
///
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cout << a[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i <m; i++)
delete[]a[i];
delete[]a;
system("pause");
return 0;
}
Там как-нибудь перепиши в c# они похожи



Для решения данной задачи вам потребуется просканировать матрицу и найти первый путь, состоящий из правильных и отрицательных элементов. В C# это можно сделать с помощью следующего кода:
csharpusing System;
class Program
{
static void Main()
{
int M = 3; // Замените на нужное значение M (количество строк матрицы)
int N = 4; // Замените на нужное значение N (количество столбцов матрицы)
int[,] matrix = new int[M, N]; // Создаем матрицу MxN
// Заполним матрицу для примера (замените этот шаг на ввод данных с клавиатуры или из другого источника)
matrix = new int[,]
{
{ 1, 2, -3, 4 },
{ 5, 6, 7, -8 },
{ -9, 10, 11, 12 }
};
// Переменные для хранения индексов пути
int pathRow = -1;
int pathCol = -1;
// Просканируем матрицу в поиске нужного пути
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
if (matrix[i, j] > 0) // Проверим, что элемент положительный (отрицательные не рассматриваем)
{
continue; // Если элемент положительный, пропустим его и перейдем к следующему
}
// Проверим, что у текущего элемента есть соседи (не является крайним)
bool hasNeighbors = false;
if (i > 0 && i < M - 1 && j > 0 && j < N - 1)
{
hasNeighbors = true;
}
// Если текущий элемент - правильный и у него есть соседи, то запоминаем его индексы и прерываем цикл
if (hasNeighbors && IsCorrectElement(matrix[i, j]))
{
pathRow = i;
pathCol = j;
break;
}
}
if (pathRow >= 0 && pathCol >= 0) // Если найден путь, прерываем внешний цикл
{
break;
}
}
// Выводим результат
if (pathRow >= 0 && pathCol >= 0)
{
Console.WriteLine($"Первый путь найден в ячейке ({pathRow}, {pathCol}). Значение элемента: {matrix[pathRow, pathCol]}");
}
else
{
Console.WriteLine("Пути с правильными и отрицательными элементами не найдено.");
}
}
// Метод для проверки, что число является правильным (делится на 5) и отрицательным
static bool IsCorrectElement(int number)
{
return number % 5 == 0 && number < 0;
}
}
Вы можете заменить матрицу matrix
на свою и задать нужные значения для M
и N
. Этот код найдет первый путь, состоящий из правильных и отрицательных элементов, и выведет его индексы и значение на экран.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili