0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 3
1

Найти максимальный элемент в каждом столбце и минимальный элемент в каждой строке и заменить их нулями

31.01.2011, 06:38. Показов 5635. Ответов 4
Метки нет (Все метки)

ребята, помогите пожалуйста, нужно задать двумерный массив(пользователем вводится кол-во столбцов и строк и сами элементы массива). найти максимальный элемент в каждом столбце и минимальный в каждой строке и заменить их нулями. затем вывести исходный и преобразованный массив. у меня не получается.... заранее спасибо
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
90
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] mas;
            int N1;
            int N2;
            Console.WriteLine("Укажите количество строк матрицы:");
            N1 = int.Parse(Console.ReadLine());
            Console.WriteLine("Укажите количество столбцов матрицы:");
            N2 = int.Parse(Console.ReadLine());
 
 
            mas = new int[N1, N2];
            int i;
            int j;
            for (i = 0; i < N1; i++)
            {
                Console.WriteLine("строка" + i + ": ");
                for (j = 0; j < N2; j++)
                {
                    Console.Write(j + "=");
                    mas[i, j] = int.Parse(Console.ReadLine());
                }
            }
 
            //вывод исходной
            Console.WriteLine("Исходная матрица");
            for (int iv = 0; iv < N1; iv++)
            {
                for (int jv = 0; jv < N2; jv++)
                {
                    Console.Write("  " + mas[iv, jv]);
                }
                Console.WriteLine();
            }
 
            int minst = mas[0, 0];
            for (i = 0; i < N1 - 1; i++)
            {
                for (j = 0; j < N2 - 1; j++)
                {
                    if (mas[i, j] <= minst)
                    { minst = mas[i, j]; }
 
                }
                for (j = 0; j < N2 - 1; j++)
                {
                    if (mas[i, j] == minst)
                    { mas[i, j] = 0; }
                }
                minst = mas[i + 1, N2 - 1];
            }
 
            int maxstl = mas[0, 0];
            for (i = 0; i < N2 - 1; i++)
            {
                for (j = 0; j < N1 - 1; j++)
                {
                    if (mas[j, i] >= maxstl)
                    { maxstl = mas[j, i]; }
 
                }
                if (mas[i, j] == maxstl)
                { mas[i, j] = 0; }
            }
 
 
 
           Console.WriteLine("Преобразованная матрица");
            for (int iv = 0; iv < N1; iv++)
            {
                for (int jv = 0; jv < N2; jv++)
                {
                    Console.Write("  " + mas[iv, jv]);
                }
                Console.WriteLine();
            }
            Console.ReadLine();
            
        }
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2011, 06:38
Ответы с готовыми решениями:

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

В каждой строке матрицы найти максимальный элемент, в каждом столбце найти минимальный элемент, и поменять их местами
пожалуйста помогите плз!!! дан массив А. В каждой строке найти максимальный элемент, в каждом...

Определить минимальный элемент в каждом столбце и максимальный элемент в каждой строке матрицы
Определить минимальный элемент в каждом столбце и максимальный элемент в каждой строке матрицы....

Максимальный элемент в каждом столбце матрицы, минимальный в каждой строке - объединить в массив
Дана матрица q (k,n). Найти значение максимального елемента в каждом столбце,минимального в каждой...

4
мастер топоров
913 / 738 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
31.01.2011, 08:58 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
90
91
92
93
94
95
96
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
 
namespace MinMaxVaolueOfMatrix {
    class StorageAndEtc {
        public int i;
        public int j;
        public StorageAndEtc(int i, int j) {
            this.i = i;
            this.j = j;
        }
        public static int IndexOfMax(int[] array) {
            int max = -9999999;                                 //аналогично как в следующей функции
            int iMax = 0;                                       //смотреть ниже комментарии
            for (int i = 0; i < array.Length; i++) {
                if (array[i] > max) {
                    max = array[i];
                    iMax = i;
                }
            }
            return iMax;
        }
        public static int IndexOfMin(int[] array) {
            int min = 9999999;                                  //число следует менять в зависимости от 
            int iMin = 0;                                       //расброса рендома так чтобы оно было больше
            for (int i = 0; i < array.Length; i++) {            //больше максимально возможного рендома
                if (array[i] < min) {                           //но если будет ввод с клавиатуры
                    min = array[i];                             //то следует ограничить диапазон ввода
                    iMin = i;                                   //смотреть коментарий к предыдущейй ф-ции
                }
            }
            return iMin;
        }
    }
    class Program {
        static void Main(string[] args) {
            Console.Write("Введите количество строк: ");
            int countOfColumn = int.Parse(Console.ReadLine());
            Console.Write("Введите количество столбцов: ");
            int countOfRow = int.Parse(Console.ReadLine());
            int[,] matrix = new int[countOfColumn, countOfRow];
            /*Random r = new Random((int)DateTime.Now.Ticks);    //заполнение матрицы рендомными числами
            for (int i = 0; i < countOfColumn; i++) {            //было лениво мне для проверки кода
                for (int j = 0; j < countOfRow; j++) {           //вводить всё ручками
                    matrix[i, j] = r.Next(0, 1000);
                }
            }*/
            for (int i = 0; i < countOfColumn; i++) {
                for (int j = 0; j < countOfRow; j++) {
                    matrix[i, j] = int.Parse(Console.ReadLine());
                }
            }
            Console.WriteLine("\nВаша матрица:\n");
            for (int i = 0; i < countOfColumn; i++) {
                for (int j = 0; j < countOfRow; j++) {
                    Console.Write("{0}\t", matrix[i, j].ToString());
                }
                Console.WriteLine();
            }
            Console.WriteLine();
            ArrayList minPoints = new ArrayList();
            ArrayList maxPoints = new ArrayList();
            for (int i = 0; i < countOfColumn; i++) {
                int[] currentColumn = new int[countOfRow];
                for (int j = 0; j < currentColumn.Length; j++) {
                    currentColumn[j] = matrix[i, j];
                }
                minPoints.Add(new StorageAndEtc(i, StorageAndEtc.IndexOfMin(currentColumn)));
            }
            for (int i = 0; i < countOfRow; i++) {
                int[] currentRow = new int[countOfColumn];
                for (int j = 0; j < currentRow.Length; j++) {
                    currentRow[j] = matrix[j, i];
                }
                maxPoints.Add(new StorageAndEtc(StorageAndEtc.IndexOfMax(currentRow), i));
            }    
            foreach(StorageAndEtc index in minPoints){
                matrix[index.i, index.j] = 0;
            }
            foreach (StorageAndEtc index in maxPoints) {
                matrix[index.i, index.j] = 0;
            }
            Console.WriteLine("\nОтредактированная метрица:\n");
            for (int i = 0; i < countOfColumn;i++ ) {
                for (int j = 0; j < countOfRow; j++) {
                    Console.Write("{0}\t", matrix[i, j]);
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}

Не по теме:

ожидается благодарность :-[



Добавлено через 10 минут
забыл написать строчку перед циклом ввода значений
C#
1
Console.WriteLine("Вводим значения...");
Добавлено через 1 минуту

Не по теме:

нажмите на кнопочку "Отзыв" в благодарность

 Комментарий модератора 
Koran, п. 3.9 правил. В следующий раз предупреждением не отделаешься.
2
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 3
31.01.2011, 09:02  [ТС] 3
большое спасибо, выручили!!))) долгих лет жизни )))
0
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 3
31.01.2011, 15:23  [ТС] 4
сдал прогу, препод немного ругался по поводу класса Array. он нам просто не давал, на парах говорил что такой есть и все))) но все равно принял ее, еще раз огромное спасибо))
0
мастер топоров
913 / 738 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
31.01.2011, 22:25 5
можно было реализовать без коллекций, но я хотел сначала выделить минимальные и максимальные точки и только потом заменять их нулями. а как выделить их без массива я не придумал сразу.. но можно было и находу заменять - они не могли по идее перекрываться
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2011, 22:25
Помогаю со студенческими работами здесь

Найти максимальный и минимальный элемент в каждой строке и столбце матрицы и вывести на экран
Есть двумерный массив размера m на n. Нужно найти максимальный и минимальный елемент в каждом рядке...

Найти наибольший элемент в каждой строке, и найменший элемент в каждом столбце матрицы А(nxn)
Выручите, пожалуйста! 1.Вычислить коэффициент b0 и b1 линейного приближения y=b0+b1x за...

Найти первый отрицательный элемент в каждой строке матрицы и последний четный элемент в каждом столбце
Дан двумерный массив двухбайтовых знаковых целочисленных элементов 5*8. Полагаем,что в каждой...

Массив: Найти первый отрицательный элемент в каждой строке и последний четный элемент в каждом столбце.
Дан двумерный массив двухбайтовых знаковых целочисленных элементов 5*8. Полагаем,что в каждой...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru