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

Перестановка строк в двумерном массиве работает не так как следует

19.04.2018, 19:23. Показов 1475. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, всем привет, у меня такая проблема, не могу с ней справится. Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Перестановка строк работает не так как следует, по какой-то причине последняя строка становится на место первой , а сортировка по росту характеристик не идет. Не могу понять, получается от bool и не сортирует, весь его цикл, почему?
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
int n, m; 
int temp = 0; 
Random rand = new Random(); 
Console.WriteLine("Введите размерность массива"); 
n = int.Parse(Console.ReadLine()); 
m = int.Parse(Console.ReadLine()); 
int[] str = new int[n]; 
int[,] mas = new int[n, m]; 
for (int i = 0; i < n; i++) 
{ 
Console.WriteLine(); 
for (int j = 0; j < m; j++) 
{ 
mas[i, j] = rand.Next(-10, 10); 
Console.Write("{0,4}", mas[i, j]); 
} 
} 
int KOL; 
int stolb = 0; 
for (int j = 0; j < m; j++) 
{ 
KOL = 0; 
for (int i = 0; i < n; i++) 
{ 
if (mas[i, j] != 0) 
++KOL; 
if (KOL == n) 
{ 
stolb++; 
} 
} 
} 
Console.WriteLine(); 
Console.WriteLine(" количество столбцов не содержащих ни одного нулевого элемента: " + stolb); 
bool pr = false; 
int sum1, sum2; 
do 
{ 
for (int i = 0; i < n-1; i++) 
{ 
sum1 = 0; 
sum2 = 0; 
for (int j = 0; j < m; j++) 
{ 
if (mas[i, j] % 2 == 0 && mas[i, j] > 0) 
{ 
sum1 += mas[i, j]; 
} 
if (mas[i+1, j] % 2 == 0 && mas[i+1, j] > 0) 
{ 
sum2 += mas[i+1, j]; 
} 
} 
if (sum2 < sum1) 
{ 
for (int l = 1; l < n; l++) 
{ 
for (int b = 0; b < m; b++) 
{ 
temp = mas[l - 1, b]; 
mas[l - 1, b] = mas[l, b]; 
mas[l, b] = temp; 
} 
} 
pr = true; 
} 
else 
{ 
pr = false; 
} 
} 
} 
while (pr); 
for (int k = 0; k < n; k++) 
{ 
Console.WriteLine(); 
for (int j = 0; j < m; j++) 
{ 
Console.Write("\t" + mas[k, j]); 
} 
} 
Console.ReadKey(); 
} 
} 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2018, 19:23
Ответы с готовыми решениями:

Перестановка в двумерном массиве
Нужна помощь! Поменять местами первую строку и строку, в которой находится первый нулевой...

Поиск одинаковых элементов в двумерном массиве как в строках так и в столбцах
Поиск одинаковых элементов в двумерном массиве как в строках так и в столбцах а если эти элементы...

Как в двумерном массиве узнать количество строк и колонок?
Как в двумерном массиве узнать количество строк и колонок?

Как в двумерном массиве отыскать номера строк, содержащие отрицательные элементы
Здравствуйте. Дан двумерный массив размерностью (заполнен рандомно). Необходимо найти и вывести на...

2
willow300
21.04.2018, 00:30
  #2

Не по теме:

Вадим123098, два раза копировал Ваш код в студию и два раза опускались руки из-за того, что вижу перед собой полотно (элементарно):
- без пустых строк между разными блоками кода;
- без указания блока кода в котором не корректно работает логика приложения;
- без комментариев, хотя бы минимальных;
- с не понятно какой целью созданными переменными с неинформативными названиями (как в решении поставленной задачи используется массив str из 7-ой строки?).

Уверен, что если бы код содержал комментарии / объяснения, то Вы уже получили бы ответы на свои вопросы.

0
Diamante
21.04.2018, 01:27     Перестановка строк в двумерном массиве работает не так как следует
  #3

Не по теме:

willow300, ему-то что, он еще 100500 тем создаст...он же не понимает, что этого, мозг+знания не отрастут

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2018, 01:27

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

Перестановка строк и столбцов в массиве
Помогите, пожалуйста. Составить программу на языке Паскаль заполнения массива F(M, M) значениями...

Перестановка строк в двухмерном массиве
помогите пожалуйста! нужно поменять первую строку с третей а вторую с четвертой

Перестановка строк в двухмерном массиве
Подскажите пожалуйста функцию осуществляющую перестановку строк в двухмерном массиве 7*7 следующим...


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

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

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