Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/29: Рейтинг темы: голосов - 29, средняя оценка - 4.83
1 / 1 / 2
Регистрация: 21.01.2013
Сообщений: 15

Задача на двумерные массивы. Дана матрица размера M х N. Найти ее строки, элементы которых упорядочены по возрастанию

21.01.2013, 15:00. Показов 6014. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно решить задачу на C#. Т.к. в этом деле я не особой знаток, прошу помощи знающих людей.
Описание задачи:
Задачи на двухмерные массивы . Условие вида "дана матрица" означает, что пользователем вводится с клавиатуры размерность и все элементы. Осуществить ввод необходимых данных, выполнить реализацию алгоритма, обеспечить вывод полученных результатов. Для решения задачи предварительно составляется блок-схема. Не допускается использование операторов, прерывающих ход программы (break, goto). Ввод многомерных массивов, обработка и вывод результатов реализуется отдельными методами .
Сама задача:
Дана матрица размера M х N. Найти ее строки, элементы которых упорядочены по возрастанию.

Я пытался вот так сделать, но что то не получается. То выдает, что что переменные выходят за размеры массива, то выдает какую то лажу.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void enter(out int[,] my_matrix)
        {
            int i, j, M, N; string s;//описываем необходимые переменные
            Console.Write("Введите число строк матрицы N=");//вводим размер матрицы
            s = Console.ReadLine();
            N = Convert.ToInt32(s);
            Console.Write("Введите число столбцов матрицы M=");
            s = Console.ReadLine();
            M = Convert.ToInt32(s);
            my_matrix = new int[N, M];//создаём двухмерный массив необходимой длины
            //запускаем циклы по всем элементам матрицы
            for (i = 0; i < N; i++) //цикл по строкам
 
                for (j = 0; j < M; j++) //цикл по столбцам
                {
                    Console.Write("Введите элемент матрицы ({0},{1}) ", i + 1, j + 1);//вводим i,j-ый элемент
                    s = Console.ReadLine();
                    my_matrix[i, j] = Convert.ToInt32(s);
                }
        }
        static void process(ref int[,] my_matrix)
        {
            int k = 0;
            int N = my_matrix.GetLength(0);//находим количеств строк в матрице
            int M = my_matrix.GetLength(1);//находим количество столбцов в матрице
 
            for (int i = 0; i < N; i++)//запускаем цикл по строкам
            {
                for (int j = 1; j < M; j++)//цикл по столбцам
                {
                    if (my_matrix[i, j - 1] < my_matrix[i, j]) //считываем количество элеменов, удовлетворяющих нашему условию
                        k++;
                }
            }
            k = k / M; // количество элементов делим на количество элементов в строке (столбцов). получаем количество строк
            int[,] my_matrix1 = new int[k, M];//создаём дополнительный массив с необходимым количеством строк
 
            int n = 0;
            int m = 0;
            for (int i = 0; i < N; i++)//заполняем новый массив четными элементами исходного
            {
                for (int j = 1; j < M; j++)
                {
                    v++;
                    if (my_matrix[i, j - 1] < my_matrix[i, j])
                    {
                        my_matrix1[n, m] = my_matrix[i, j - 1];
                        n++;
                        m++;
                    }
                }
            }
            my_matrix = my_matrix1;
        }
        static void output(int[,] my_matrix)
        {
            int N = my_matrix.GetLength(0);
            int M = my_matrix.GetLength(1);
            Console.WriteLine();
            Console.WriteLine("Вывод результата:");
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    Console.Write("{0,3} ", my_matrix[i, j]);
                    Console.WriteLine();
                }
            }
        }
        static void Main(string[] args)
        {
            int[,] my_matrix;
            enter(out my_matrix); //обращение к методу enter
            process(ref my_matrix); //обращение к методу process
            output(my_matrix); //обращение к методу output
            Console.ReadKey();
        }
 
    }
}
буду рад любой помощи. Заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2013, 15:00
Ответы с готовыми решениями:

Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию.
Matrix42. Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию. Кто знает помогите!

Дана матрица M x N. Найти количество ее строк, элементы которых упорядочены по возрастанию
Привет всем))))) Помогите полалуста с задачками по делфи, а то до нового года здать надо или зачот не поставят Заранее спасибки ...

Дана матрица размера mxn найти количество ее столбцов, элементы которых упорядочены по убыванию
как довести эту задачу до ума дана матрица размера mxn найти количество ее столбцов, элементы которых упорядочены по убыванию unit...

6
 Аватар для corlovito
461 / 442 / 75
Регистрация: 26.12.2012
Сообщений: 2,888
21.01.2013, 16:06
ну для начала посомотри на 58 строку откуда у тебя здесь переменная v взялась?
0
1 / 1 / 2
Регистрация: 21.01.2013
Сообщений: 15
21.01.2013, 16:37  [ТС]
видимо, не заметил. Но она никакой роли не играет. ее можно сразу удалить.
Но сути то это не меняет. даже удалив v, программа все равно останется нерабочей.
0
 Аватар для corlovito
461 / 442 / 75
Регистрация: 26.12.2012
Сообщений: 2,888
21.01.2013, 16:38
а потом в 61 строке у тебя ошибку выдает что индекс находится вне границ массива
0
1 / 1 / 2
Регистрация: 21.01.2013
Сообщений: 15
21.01.2013, 16:54  [ТС]
только у меня это 56 строка

да, знаю, что он выходит за границы массива, но не знаю, как это исправить и где я ошибся.
0
 Аватар для ITL
284 / 255 / 73
Регистрация: 17.07.2012
Сообщений: 618
21.01.2013, 19:11
Строки 40,41 : к++ только если 2 элемента рядом(!) удовлетворяют условию, но не все в строке сразу. А если массив 20 на 20 ? это 400 проходов, К может достичь цифры 360. Измените условие, там надо еще одну переменную добавить(для учета условия для всей строки)

Строки 57,58 : переменные m и n, та же ситуация, они так стоят , что массив 3 на 3 делает 9 итерации. Соответственно в конце m и n равны по 9. А у вас массив int[k, M] , в данном случае к и М больше 3 быть не могут. При 4-ой итерации выскакивает ошибка.
0
1 / 1 / 2
Регистрация: 21.01.2013
Сообщений: 15
21.01.2013, 22:39  [ТС]
да. я уже нашел у себя там ошибки и разобрался.
Но, все равно, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2013, 22:39
Помогаю со студенческими работами здесь

Задача на двумерный массив. Дана целочисленная матрица размера M x N. Найти количество ее столбцов, все элементы которых
Задача на двумерный массив. Дана целочисленная матрица размера M x N. Найти количество ее столбцов, все элементы которых различны.

Дана матрица размера M × N. Найти максимальный среди элементов тех столбцов, которые упорядочены либо по возрастанию,
Matrix45. Дана матрица размера M × N. Найти максимальный среди эле- ментов тех столбцов, которые упорядочены либо по возрастанию, либо ...

Дана матрица размера N×M. Найти максимальный среди элементов тех строк|столбцов, которые упорядочены либо по возрастанию
Дана матрица размера N×M. Найти максимальный среди элементов тех строк|столбцов, которые упорядочены либо по возрастанию, либо по убыванию....

Двумерные массивы. Дана матрица размера MxN. Найти минимальный среди максимальных элементов ее столбцов
Дана матрица размера MxN. Найти минимальный среди максимальных элементов ее столбцов. Заранее спасибо.

Дана действительная матрица размера M,N. Упорядочить по возрастанию элементы i-той строки матрицы
Помогите написать программу


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru