Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
#1

Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. - C++

01.12.2010, 21:01. Просмотров 1115. Ответов 10
Метки нет (Все метки)

Добрый вечер.У меня задача на 2-х мерные массивы. Вот текст задачи:
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 21:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. (C++):

Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания - C++
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания Желательно на си. Помощи очень нуждаюсь!

Упорядочить по возрастанию элементы каждого столбца матрицы - C++
Составьте программу, упорядочивающую по возрастанию элементы каждого столбца матрицы размером m*n.:(

Упорядочить по возрастанию элементы каждого столбца матрицы - C++
Задание: Составить программу решения задачи на С++. Вывод матрицы на экран оформить в виде процедуры. Упорядочить по возрастанию...

Упорядочить по возрастанию элементы каждого столбца матрицы - C++
Упорядочить по возрастанию элементы каждого столбца матрицы размером n*m.Найти сумму положительных элементов и количество отрицательных...

В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца - C++
Решить задачу: в прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца.

Упорядочить в порядке убывания элементы массива - C++
Упорядочить в порядке убывания элементы массива, расположенные между первым положительным и последним отрицательным значениями массива

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
02.12.2010, 01:54 #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
#include <iostream>
using namespace std;
int main()
{
  //задаем массив
  //размеры массива будут NxM
  int n,m=1;
  cout << "Ввод размеров массива:\n";
  cin >> n >> m;
  float mass[n][m];
  float tmp=0;
  cout << "Ввод массива:\n";
  for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin >> mass[i][j];
  //сортировка
  for(int j=0;j<n;j++) 
    for(int i=0;i<m;i++)  
      for(int k=i;k<m;k++) 
      if (mass[i][j]<mass[k][j]) 
        {
          tmp=mass[i][j];
          mass[i][j]=mass[k][j];
          mass[k][j]=tmp;
        }
  cout << "\n Выводим сортированный:\n";
  for (int i = 0;i<n;i++) 
    {
      for (int j = 0;j<m;j++) cout << mass[i][j] << "\t"; 
      cout << "\n";
    }
}
Добавлено через 3 минуты
это с++, на си алгоритм такой же, но вывод будет через printf.
1
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
02.12.2010, 10:34  [ТС] #3
Программа не работает,выдает куча ошибок
0
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
02.12.2010, 11:35 #4
ты чем компилируешь? у меня все отлично собирается и работает:
g++ myfile.cpp -o filename
./filename
0
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
02.12.2010, 19:31  [ТС] #5
Microsoft Visuo Studio 2008
0
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
02.12.2010, 20:14 #6
код рабочий, ты что-то не так делаешь. покажи хоть, что за ошибки выдает
1
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
02.12.2010, 20:46  [ТС] #7
Я просто скопировала ваш текст и еще ничего не исправляла.
error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2087: mass: отсутствует индекс
error C2133: mass: неизвестный размер
error C2059: синтаксическая ошибка: return
error C2059: синтаксическая ошибка: }
error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
error C2059: синтаксическая ошибка: }
0
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
03.12.2010, 13:35 #8
попробуй так:
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
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
{
  //задаем массив
  //размеры массива будут NxM
  int n,m=1;
  cout << "Ввод размеров массива:\n";
  cin >> n >> m;
  float mass[n][m];
  float tmp=0;
  cout << "Ввод массива:\n";
  for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin >> mass[i][j];
  //сортировка
  for(int j=0;j<n;j++) 
    for(int i=0;i<m;i++)  
      for(int k=i;k<m;k++) 
      if (mass[i][j]<mass[k][j]) 
        {
          tmp=mass[i][j];
          mass[i][j]=mass[k][j];
          mass[k][j]=tmp;
        }
  cout << "\n Выводим сортированный:\n";
  for (int i = 0;i<n;i++) 
    {
      for (int j = 0;j<m;j++) cout << mass[i][j] << "\t"; 
      cout << "\n";
    }
return 0;
}
1
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
03.12.2010, 14:41 #9
Селявкина Мария, используйте динамическое выделение памяти:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
float** mass = new float*[n];
for(i = 0; i < n; i++)
{
    mass[i] = new float[m];
}
 
......
// после работы - освободить память
for (i = 0; i < n; i++)
{
    delete [] mass[i];
}
delete [] mass;
Или объявите размеры массива как константы, например:
C++
1
2
const int n = 5;
const int m = 5;
1
Селявкина Мария
1 / 1 / 0
Регистрация: 01.10.2010
Сообщений: 59
09.12.2010, 17:45  [ТС] #10
А что for(int k=i;k<m;k++) в данном цикле обозначает k?
0
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
10.12.2010, 14:31 #11
k - это счетчик цикла, перебирает элементы столбца.
Программа работает так
пока j не вышло за пределы массива перебираем столбцы с 0 до n
{
пока i не вышло за пределы массива перебираем строки с 0 до m
{
пока k не вышло за пределы массива, перебираем элементы с i до m и, находя максимальный элемент, меняем его с i местами. // т.е в первой итерации находим самый большой элемент и ставим его на позицию i=0, затем находим второй по величине элемент и ставим на позицию i=1 и тд
}
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 14:31
Привет! Вот еще темы с ответами:

Упорядочить в порядке убывания элементы массива - C++
Упорядочить в порядке убывания элементы массива, расположенные между первым положительным и последним отрицательным значениями массива

Упорядочить каждый столбец заданной матрицы в порядке убывания - C++
необходимо создать массив, размер которого задается пользователем и наполняется им же. потом необходимо отсортировать каждый столбец в...

Упорядочить элементы массивов в порядке убывания целой части STL - C++
Алгоритмы стандартной библиотеки шаблонов STL Даны два одномерных массива размерности N. Упорядочить элементы массивов в порядке убывания...

Для каждого столбца прямоугольной матрицы подсчитать сумму входящих в него элементов - C++
Для каждого столбца прямоугольной матрицы подсчитать сумму входящих в него элементов и определить, имеются ли столбцы с одинаковой суммой.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.12.2010, 14:31
Ответ Создать тему
Опции темы

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