Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
11 / 11 / 2
Регистрация: 21.11.2011
Сообщений: 69
1

Поменять местами первую строку и строку где минимальный элемент

21.11.2011, 16:43. Просмотров 975. Ответов 5
Метки нет (Все метки)


Сколько пыталась, ни как не могу выполнить эту задачку, устала уже, помогите мальчики.

Сформировать матрицу А5×5 случайных целых чисел в диапазоне от минус 50 до 50. Напечатать матрицу. Найти минимальный элемент, и, если он не в первой строке, то поменять местами первую строку и строку, в которой находится минимальный элемент. Напечатать новую матрицу.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 public static int sumP = 0, sumN = 0;
        public static void sozd(int[,] ma)
        {
           
            Random rnd = new Random();
            Console.WriteLine("Матрицы создана!");
            Console.WriteLine("Матрица А 6*6:");
            for (int i = 0; i < 6; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    ma[i, j] = rnd.Next(-50, 50);
                    if (ma[i, j] > 0) sumP += ma[i, j]; else sumN += ma[i, j];
                    Console.Write(ma[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.WriteLine();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2011, 16:43
Ответы с готовыми решениями:

Поменять местами первую строку матрицы с той строкой, где находится максимальный элемент
Задана матрица А(4,4). Если максимальный элемент матрицы равен сумме элементов первой строки, то...

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

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

Поменять местами первую строку матрицы с той строкой, где находится максимальный элемент
Задана матрица А(4,4). Если максимальный элемент матрицы равен сумме элементов первой строки, то...

5
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
21.11.2011, 17:04 2
А зачем вы начали искать сумму отрицательных и положительных элементов матрицы?
C#
1
if (ma[i, j] > 0) sumP += ma[i, j]; else sumN += ma[i, j];
0
111 / 111 / 40
Регистрация: 24.02.2011
Сообщений: 325
21.11.2011, 17:20 3
проверь, должно работать)
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
int min, index=0;
            Random rnd = new Random();
            int[,] matrix = new int[5, 5];
            min = matrix[0, 0];
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    matrix[i, j] = rnd.Next(-50, 50);
                    if (matrix[i, j] < min)
                    {
                        min = matrix[i, j];
                        index = i;
                    }
                }
            }
            if (index != 0)
            {
                for (int i = 0; i < 5; i++)
                {
                    int n = matrix[index, i];
                    matrix[index, i] = matrix[0, i];
                    matrix[0,i] = n;
                }
 
            }
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Console.Write(matrix[i, j]);
                }
                Console.Write("\n");
            }
            Console.ReadKey();
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
21.11.2011, 17:24 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int[,] arr = new int[5, 5];
 
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    arr[i, j] = rnd.Next(-50, 51);
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.WriteLine("\n");
 
            int min = arr[0, 0];
            int index=0;
            for (int i = 0; i < 5; i++)
                for (int j = 0; j < 5; j++)
                    if (arr[i, j] < min)
                    {
                        min = arr[i, j];
                        index = i;
                    }
 
            if (index > 0)
            {
                int tmp;
                for (int i = 0, j = index; i < 5; i++, j++)
                {
                    tmp = arr[0, i];
                    if (j < 5)
                    {
                        arr[0, i] = arr[j, i];
                        arr[j, i] = tmp;
                    }
                }
            }
 
            //отображаем конечный массив
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadKey(true);
        }
    }
}
0
111 / 111 / 40
Регистрация: 24.02.2011
Сообщений: 325
21.11.2011, 17:57 5
Цитата Сообщение от NowMatrix Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
int tmp;
 for (int i = 0, j = index; i < 5; i++, j++)
 {
       tmp = arr[0, i];//запоминаем i-тый элемент первой строки
       if (j < 5)
       {
       // меняем местами
        arr[0, i] = arr[j, i];
        arr[j, i] = tmp;
       }
 }
вопрос: зачем на каждом шаге цикла увеличивать j?
1
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
21.11.2011, 18:04 6
Цитата Сообщение от Moonlight# Посмотреть сообщение
вопрос: зачем на каждом шаге цикла увеличивать j?
Да кстати незачем вовсе. Писал на скорую руку,особо не думая..
Вот, исправленно:
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int[,] arr = new int[5, 5];
 
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    arr[i, j] = rnd.Next(-50, 51);
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.WriteLine("\n");
 
            int min = arr[0, 0];
            int index=0;
            for (int i = 0; i < 5; i++)
                for (int j = 0; j < 5; j++)
                    if (arr[i, j] < min)
                    {
                        min = arr[i, j];
                        index = i;
                    }
 
            if (index > 0)
            {
                int tmp;
                for (int i = 0, j = index; i < 5; i++)
                {
                    tmp = arr[0, i];
                    arr[0, i] = arr[j, i];
                    arr[j, i] = tmp;
                }
            }
 
            //отображаем конечный массив
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadKey(true);
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2011, 18:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Матрицы: поменять местами первую строку и строку, содержащую максимальный элемент
1)В матрице поменять местами 1 строку и строку содержащие последнее вхождение элемента...

Поменять в матрице местами первую строку и строку, содержащую максимальный неположительный элемент
Задание: В заданной матрице поменять местами первую строку и строку, содержащую максимальный...

В матрице поменять местами первую строку и строку содержащую максимальный отрицательный элемент
В заданной матрице из целых чисел поменять местами первую строку и строку,содержащую максимальный...

Поменять местами первую строку матрицы и строку, содержащую максимальный отрицательный элемент
:cry: Ребята выручайте. Без вас мне край. У меня не было С++ ,но мне надо сделать задачку и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.