С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
RedFox94

Не корректно работает программа (Упорядочить элементы матрицы)

06.12.2012, 03:02. Показов 735. Ответов 1

Студворк — интернет-сервис помощи студентам
Условие:
Дана матрица целых чисел N* M.Упорядочить элементы матрицы так чтобы четные элементы матрицы максимально плотно заняли верхнюю часть матрицы,а не четные нижнюю.

Код:
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
#include <iostream>
 #include <cmath>
 using namespace std;
 void sort( int **a, const int nstb, const int nstr); 
 int main(){
 cout <<"Vvedite razmer massiva\n";
 int nstr,nstb;
 cin >> nstr >> nstb;
 int **a = new int *[nstr];
 for (int i = 0; i < nstr; i++)
 a[i] = new int [nstb];
 cout <<"Vvedite elementi\n";
 for (int i = 0;i < nstr; i++)
 for (int j = 0; j < nstb; j++)
 cin >>a[i][j];
 sort (a,nstb,nstr); 
 for (int i = 0; i < nstr; i++){
 cout <<"\n";
 for (int j = 0; j < nstb; j++)
 cout << a[i][j] <<"\t";} 
 cin.get();
cin.get();
  return 0;
 }
 void sort ( int **a, const int nstb, const int nstr){
 int buf = 0;
 int kol = (nstr / 2);
 for (int j = 0; j < nstb; j++)
 for (int i = 0; i < kol + 1; i++){
 if ((a[i][j] % 2 !=0) && a[i + kol][j] % 2 == 0) {
 buf = a[i+kol][j];
 a[i+kol][j] = a[i][j];
 a[i][j] = buf;
 }
 }
 }
Проблема:При вводе размера матрицы 3х3 идеально работает,а есле ввести 4х4 не хочет работать.Скорей всего и за выхода за границы массива так как считает от 0 до 3;

Исправьте код или объясните где нужно исправить
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2012, 03:02
Ответы с готовыми решениями:

Программа по поиску наименьшего по модулю элемента матрицы не работает корректно
Задание: Составить алгоритм обработки матрицы А типа short размером М х N (М≤10 строк, N≤10 столбцов). Значения М и N ввести с...

Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по возрастанию массив
Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1&lt;n&lt;=100, 1&lt;m&lt;=50) и Упорядочить все...

Программа работает не корректно
Здравствуйте, помогите мне пожалуйста разобраться с программой. Вот само задание: Дано натуральное число n. Найти все меньшие n числа...

1
 Аватар для no_wearines
56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347
06.12.2012, 05:19
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <conio.h>
using namespace std;
 
bool f_1(int i_val_1)
{
return ((i_val_1 % 2) == 0);
}
 
void sort ( int **a, const int nstb, const int nstr)
{
vector<int> v_1(nstb * nstr);
int i_1, i_2, i_3;
 
for(i_1 = 0, i_3 = 0; i_1 < nstb; ++i_1)
for(i_2 = 0; i_2 < nstr; ++i_2)
v_1[i_3++] = a[i_1][i_2];
 
partition(v_1.begin(), v_1.end(), f_1);
 
for(i_1 = 0, i_3 = 0; i_1 < nstb; ++i_1)
for(i_2 = 0; i_2 < nstr; ++i_2)
a[i_1][i_2] = v_1[i_3++];
}
 
int main()
{
cout <<"Vvedite razmer massiva\n";
int nstr,nstb;
 cin >> nstr >> nstb;
 int **a = new int *[nstr];
 for (int i = 0; i < nstr; i++)
 a[i] = new int [nstb];
 cout <<"Vvedite elementi\n";
 for (int i = 0;i < nstr; i++)
 for (int j = 0; j < nstb; j++)
 cin >>a[i][j];
 sort (a,nstb,nstr);
 
 for (int i = 0;i < nstr; i++)
 {
 for (int j = 0; j < nstb; j++)
 cout<<a[i][j]<<" ";
 cout<<endl;
 }
 
 for(int i_1 = 0; i_1 < nstr; ++i_1) 
 delete [] a[i_1]; //Освобождение памяти, выделенной под массив 
 delete [] a; //освобождение памяьт, выделенной под массив
 
 getch();
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2012, 05:19
Помогаю со студенческими работами здесь

Не корректно работает программа в C++
Составьте алгоритм программы, которая принимает от пользователя значение x и в зависимости от его значения, расчитывет значение функии f(x)...

Не корректно работает программа с класами
Привет Всем. У меня есть к Вам просьба. Я вот написал программу,но в ней редактирование и удаление данных из базы данных работает не...

Почему программа не работает корректно?
Здравствуйте! Столкнулся с такой проблемой при решении следующей задачи: Задача. Все элементы заданной матрицы, кроме элементов слобца...

Программа работает корректно, но не до конца
пользователь вводит шестизначное число. Разбить его на два трехзначных числа. и записать их в разные переменные. Вот мой код.:(...

Не корректно работает программа,посмотрите
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;iomanip.h&gt; #include &lt;math.h&gt; int main(void) { clrscr(); int x; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru