Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2010, 13:05   #1
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
По умолчанию Матрица

Уважаемые програмисты у меня вопрос
упорядочить строки матрицы a[i][j](i=1,n;j=1,m) по возрастанию их найбольших элиментов.
void main()
{int n,m;
cout<<"Введите n и m.\n";
cin>>n>>m;
double**a=new double*[m];
for(int k=0;k<m;k++)
a[k]=new double [n];
for(k=0;k<m;k++)
for(int p=0;p<n;p++)
cin>>a[k][p];
for(k=0;k<m;k++)
{for(int p=0;p<n;p++)
cout<<a[k][p]<<" ";
cout<<"\n";}
cout<<"\n";
for(k=0;k<n-2;k++)
{double min=a[k][0];
int k1=k;
for(int p=k+1;p<=n-1;p++)
if(min>a[p][0]){min=a[p][0];k1=p;}
for(p=0;p<n;p++)
{min=a[k][p];
a[k][p]=a[k1][p];
a[k1][p]=min;}}
for(k=0;k<m;k++)
{for(int p=0;p<n;p++)
cout<<a[k][p]<<" ";
cout<<"\n";}
cout<<"\n";
}
for(int k=0;k<n;k++)
{delete[]a[k];
delete[]a; }
}
Писал на с++ 4.5. Препод сказал. Зарание спасибо.
Darknes вне форума Ответить с цитированием
Старый 28.06.2010, 13:30   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

а где вопрос?
NiCola999 вне форума Ответить с цитированием
Старый 28.06.2010, 13:34   #3
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
По умолчанию

вопрос в том чо можете проверить а то там ошибка и я не могу понять в чем там дело.
Darknes вне форума Ответить с цитированием
Старый 28.06.2010, 13:39   #4
dxdy
Пользователь
 
Регистрация: 11.06.2010
Сообщений: 78
По умолчанию

У меня такая интуиция, что у вас проект даже не компилируется или я ошибаюсь? Пожалуйста, используйте теги!
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
dxdy вне форума Ответить с цитированием
Старый 28.06.2010, 13:42   #5
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
По умолчанию

Прога не компилируется выдает ошибку.
Darknes вне форума Ответить с цитированием
Старый 28.06.2010, 13:45   #6
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
По умолчанию

Народ короче помогите. Как упорядосить матрицу возрастанию их найбольших элиментов.
Darknes вне форума Ответить с цитированием
Старый 28.06.2010, 14:05   #7
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Цитата:
Сообщение от Darknes Посмотреть сообщение
Народ короче помогите. Как упорядосить матрицу возрастанию их найбольших элиментов.
я один не пойму что нужно сделать?
что значит по возрастанию наибольших элементов? Наибольших элементов чего? На сколько я знаю у матрицы 1 наибольший элемент, ну несколько если они равны. Но как может быть возрастание этих элементов если они равны?
В общем, сформулируйте доступно
ДОБАВЛЕНО. Почитал еще одну созданную вами тему, теперь дошло сейчас посмотрю
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.

Последний раз редактировалось mrChester; 28.06.2010 в 14:07.
mrChester вне форума Ответить с цитированием
Старый 28.06.2010, 14:09   #8
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
По умолчанию

короче дана матрица n x m. Как я понял надо найти в каждой стоке максимальный элемент и эти строки упорядочить по возростанию по этим максимальным элементам.
С++ 4.5.
Darknes вне форума Ответить с цитированием
Старый 28.06.2010, 14:34   #9
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Код:
#include <iostream>
#include <conio.h>
void main()
{int n,m;
cout<<"Введите n и m.\n";
cin>>n;cin>>m;
double**a=new double*[n];
double**res=new double*[n];
for(int i=0;i<n;i++)
{a[i]=new double [m];
 res[i]=new double [m];
}
for(int i=0;i<n;i++)
 for(int j=0;j<m;j++)
  cin>>a[i][j];
cout<<"\n";
for(i=0;i<n;i++)
{for(int j=0;j<m;j++)
   cout<<a[i][j]<<" ";
cout<<"\n";
}
cout<<"\n";

double max[n]; //значение максимальных элементов в строке
int countMax[n]; //содержит номер строки
for(int i=0;i<n;i++) //ищем значения наибольших значение в каждой строке
{max[i]=a[i][0];
 countMax[i]=i;
 for(int j=1;j<m;j++)
  if (a[i][j]>max[i])
   max[i]=a[i][j];
}
int i=1;
double buf;
while (i<n) //сортируем наибольшие значения
{if (max[i]<max[i-1])
  {buf=max[i]; max[i]=max[i-1]; max[i-1]=buf;
    countMax[i]=i-1; countMax[i-1]=i;
    i=1;
  }
 else i++;
}
for(i=0;i<n;i++)
 for(int j=0;j<n;j++)
  res[i][j]=a[count[i]][j];
for(i=0;i<n;i++)
{for(int j=0;j<m;j++)
   cout<<res[i][j]<<" ";
  cout<<"\n";
}
getch();
for(i=0;i<n;i++)
{delete[]a[k];
  delete[]res[k];
}
delete[]a; 
delete[]res; 
}
сразу скажу, делал без компилятора, не проверял. Работать так-то должно, если будут мелкие ошибки сам исправишь
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 28.06.2010, 14:54   #10
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
По умолчанию

Спасибо большое.
Darknes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
Матрица hexx Фриланс 6 04.03.2010 16:32
матрица в 1С Steisha Помощь студентам 0 27.02.2010 15:08
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11