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

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

Войти
Регистрация
Восстановить пароль
 
zidans
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 45
#1

Переоформить матрицу так, чтобы ее строки располагались по неубыванию их поэлементных сумм - C++

03.11.2010, 21:58. Просмотров 442. Ответов 2
Метки нет (Все метки)

Здравствуйте, помогите с программой в Microsoft Visual C++ 6.0

Дана матрица из N строк и М столбцов (1<N<=100, 1<M<=50).
Выполнить заданную операцию над матрицей:
Переоформить матрицу таким образом, чтобы ее строки располагались по неубыванию их поэлементных сумм.

C++
1
2
3
4
5
6
#include <iostream>
#include <conio.h>
void main(void)
{
int a[100][50];
int n, m;
а дальше?
Заранее благодарю
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2010, 21:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переоформить матрицу так, чтобы ее строки располагались по неубыванию их поэлементных сумм (C++):

Отсортировать массив так, чтобы столбцы матрицы располагались по убыванию их поэлементных сумм - C++
1.В двумерном массиве размерностью 5х5, заполненный случайными числами. Отсортировать массив таким образом, чтобы столбцы матрицы...

Строки матрицы расположить по неубыванию их поэлементных сумм - C++
Здравствуйте. Помогите, пожалуйста с задачей. Дана матрица из N строк и М столбцов (1&lt;N&lt;=100,1&lt;M&lt;=50). Выполнить заданную...

Отсортировать квадратную матрицу по неубыванию сумм строк - C++
Отсортировать квадратную матрицу по неубыванию сумм строк. написал что-то такое. Исправьте пожалуйста ошибки. Огромное спасибо) #include...

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

Из массивов A[6] и B[6] сформировать массив C[12] так, чтобы элементы массива располагались следующим образом: A(1) B(1) A(2) B(2) и т.д. - C++
помогите написать программу, плиз!!!! из массивов A и B сформировать массив C так, чтобы элементы массива располагались следующим...

Работа с матрицами. Переписать вторую матрицу, так , чтобы элемент, находящийся на пересечении 1 строки и 2 столбца равнялся 1... - C++
у меня есть пустая матрица a. И есть матрица вида 1 2 1 4 1 7 2 4 Как мне переписать вторую матрицу, так , чтобы элемент,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.11.2010, 05:38 #2
У Вас не раскрыто в вопросе как заполняется матрица: с клавиатуры, считывается с файла, или заполняется случайными значениями в каком-то диапазоне?
Но в любом случае, советую завести еще одну матрицу (что бы много раз не пересчитывать), для хранения элементов типа int размером 100 (кол-во строк), просчитать суммы элементов в строках матрицы a[100][50] и записать эти данные в указанный массив. Потом делаете сортировку: Вам подойдет любая существующая сортировка, только не забывайте сортировать не только строки в матрице a[100][50], но и элементы в указанном массиве, где храняться суммы элементов каждой строки.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.11.2010, 06:10 #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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <conio.h>
int main(void)
{
 int a[100][50];
 int s[100];
 int n, m;
 int i,j,k,t;
 cout<<"N=";
 cin>>n;
 cout<<" M=";
 cin>>m;
 for (i=0; i<n; ++i)
 {
  cout<<"\n";
  for (j=0; j<m; ++j)
  {
   cout<<" a["<<i<<","<<j<<"]=";
   cint>>a[i][j];
  }
 } 
 for (i=0; i<n; ++i)
 {
  s[i]=0;
  for (j=0; j<m; ++j)
  {
   s[i]+=a[i][j];
  }
 }
 for (j=n-1; j>=0; --j)
 {
  for (i=j-1; i>=0; --i)
  {
   if (s[i]>s[j])
   {
    t=s[i];
    s[i]=s[j];
    s[j]=t;
    for (k=m-1; k>=0; --k)
    {
     t=a[i][k];
     a[i][k]=a[j][k];
     a[j][k]=t;
    }
   }
  }
 }
 for (i=0; i<n; ++i)
 {
  cout<<"\n";
  for (j=0; j<m; ++j)
  {
   cout<<" a["<<i<<","<<j<<"]="<<a[i][j];
  }
 }
 return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от zidans Посмотреть сообщение
int a[100][50];
Кстати, почему int? В задаче я не увидел типа элементов матрицы, так что вполне может быть и double. Базовые типы массивов a и s должны совпадать. И этим же типом надо декларировать t, а остальные величины должны быть int.

Добавлено через 11 минут
И я бы не стал матрицу делать обычным массивом, а сделал бы классы с такой декларацией:
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
class TMatrix
class TVector
{
 friend TMatrix;
 protected:
  double *Data;
  int Count;
 public:
  TVector ();
  TVector (int Count);
  TVector (TVector &Value);
  ~TVector ();
  TVector operator = (TVector &Value);
  double & operator [] (int Index);
  TVector operator + (TVector &y);
  TVector operator - (TVector &y);
  TVector operator * (TVector &y);
  friend double abs (TVector &Value);
  TVector operator * (double y);
  friend TVector operator * (double x, TVector &y);
};
class TMatrix
{
 protected:
  double *Data;
  int Rows;
  int Collumns;
 public:
  TMatrix ();
  TMatrix (int Rows, int Collumns);
  TTMatrix (TMatrix &Value);
  ~TMatrix ();
  TMatrix operator = (TMatrix &Value);
  TVector & operator [] (int Index);
  TMatrix operator + (TMatrix &y);
  TMatrix operator - (TMatrix &y);
  TMatrix operator * (TMatrix &y);
  TMatrix operator * (double y);
  friend TMatrix operator * (double x, TMatrix &y);
};
.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2010, 06:10
Привет! Вот еще темы с ответами:

Преобразовать массив так, чтобы сначала располагались четные элементы, затем нечетные и нулевые - C++
Превратить массив таким образом , чтобы сначала располагались парные элементы , затем нечетные и нулевые помогите сделать в С ++

Преобразовать массив так, чтобы сначала располагались все элементы, отличающиеся от максимального не более 20% - C++
Задача звучит так: Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более...

Преобразовать массив так, чтобы сначала располагались все положительные элементы, а потом отрицательные - C++
Помогите пжлст решить задачу:cry: В одномерном массиве, состоящем из n целых эл-ов, вычислить: 1) произведение элементов массива с...

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


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

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

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