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

2-х массив сортировка - C++

Восстановить пароль Регистрация
 
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
09.11.2012, 11:28     2-х массив сортировка #1
Привет всем. люди добрые подскажите пж по такому условию

есть массив:
1 3 4
9 7 6
1 6 1
мах в этом массиве мах1=4, мах2=9, мах3=6 по строчкам

как можно сделать так чтобы максимальная строчка была первой и так по убыванию вниз

максимум по каждой строке уже найден.

C++ (Qt)
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
#include <iostream.h>
#include <math.h>
 
int main()
{
int mas[3][3];
int max1=0,n=3,max2=0,max3=0;
int j,i,q=0,q1=0,q2=0;
 
max1=mas[0][0];
max2=mas[1][0];
max3=mas[2][0];
 
 
    for( i = 0; i < n; i++)
    for( j = 0; j < n; j++)
    {
        cout<<"Vvedite massiv - ";
        cin>>mas[i][j];
    }
 
///введенный массив
cout<<"vvedenij massiv"<<endl;
   for( i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<mas[i][j]<<" ";
cout<<"\n";
}
////////////////////////////
   
   
 
 //for( i = 0; i < n; i++)
    for( j = 0; j < n; j++)
    {
if (max1 < mas[0][j])         (max1 = mas[0][j]); 
                                                                                       
if (max2 < mas[1][j])         (max2 = mas[1][j]);                          
if (max3 < mas[2][j])         (max3 = mas[2][j]); 
 
    }           
//вывод мах п строкам     
cout<<" "<<endl;
cout<<max1<<endl;
cout<<" "<<endl;
cout<<max2<<endl;
cout<<" "<<endl;
cout<<max3<<endl;
////////////////////
 
 
 
//вывод массива
   for( i=0;i<n;i++)
{
for( j=0;j<n;j++)
cout<<mas[i][j]<<" ";
cout<<"\n";
   }
////////////////////////////
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 11:28     2-х массив сортировка
Посмотрите здесь:

C++ C++, одномерный массив, сортировка.
Динамический массив, сортировка C++
C++ Двумерный массив - сортировка.
C++ Сортировка обменами (массив)
массив сортировка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
20.11.2012, 18:44  [ТС]     2-х массив сортировка #2
помогите люди добрые.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
20.11.2012, 18:47     2-х массив сортировка #3
Цитата Сообщение от shilovec5377 Посмотреть сообщение
как можно сделать так чтобы максимальная строчка была первой и так по убыванию вниз
то есть сортировка только переставлением строк?
В твоём примере ты ожидаешь результат
1 3 4
1 6 1
9 7 6
верно?
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
20.11.2012, 18:50  [ТС]     2-х массив сортировка #4
верно, но только наоборот,
9 7 6
1 6 1
1 3 4

по убыванию, чтобы максимум был наверху
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,898
Записей в блоге: 2
Завершенные тесты: 1
20.11.2012, 18:52     2-х массив сортировка #5
можно пойти "в лоб"
просматриваем матрицу с 0 строки и до последней, выбираем ту, в которой самый большой максимум и меняем её местами со строкой 0. Потом просматриваем все строки с 1 строки и до последней и т.д.
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
20.11.2012, 18:54  [ТС]     2-х массив сортировка #6
дело в том что матрица неопределенного размера
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,898
Записей в блоге: 2
Завершенные тесты: 1
20.11.2012, 18:55     2-х массив сортировка #7
Цитата Сообщение от shilovec5377 Посмотреть сообщение
дело в том что матрица неопределенного размера
у Вас в любом случае есть какая-то переменная, константа в которой хранится размер массива
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2012, 19:48     2-х массив сортировка
Еще ссылки по теме:

Одномерный массив, сортировка C++
Сортировка (двумерный массив) C++
C++ Массив сортировка

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
20.11.2012, 19:48     2-х массив сортировка #8
Цитата Сообщение от shilovec5377 Посмотреть сообщение
max1=mas[0][0]; max2=mas[1][0]; max3=mas[2][0]; for( i = 0; i < n; i++) for( j = 0; j < n; j++) { cout<<"Vvedite massiv - "; cin>>mas[i][j]; }
у тебя даже в этой программе ошибка
сначала инициализируешь максимумы и только потом вводишь массив, нулевые элементы строчек которого, очевидно не равны тому, что присвоилось в max1..3

Добавлено через 12 минут
держи. забавно сделал, через массив указателей, чтобы поэлементно не копировать строки.
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
 #include <iostream.h>
#include <math.h>
const int n=3;
int main()
{
  int data[n][n];
  int max[n];
  int j,i, tmp;
  int* mas[n];
  int* tmpp;
  
  
  for(i=0; i<n; i++)
     mas[i]=&(data[i][0]);
   for( i = 0; i < n; i++)
    for( j = 0; j < n; j++)
    {
        cout<<"Vvedite massiv - ";
        cin>>mas[i][j];
    }
 
  for(i=0; i<n; i++) 
    max[i]=mas[i][0];
///ââåäåГ*Г*ûé Г¬Г*Г±Г±ГЁГў
cout<<"vvedenij massiv"<<endl;
   for( i=0;i<n;i++)
   {
for(int j=0;j<n;j++)
cout<<mas[i][j]<<" ";
cout<<"\n";
}
////////////////////////////
   
   
 
for( i = 0; i < n; i++){
    for( j = 0; j < n; j++)
             if (max[i] < mas[i][j])   
                   max[i] = mas[i][j]; 
                   
}
//âûâîä Г¬Г*Гµ ГЇ ñòðîêГ*Г¬ 
cout<<"maximums"<<endl;    
cout<<" "<<endl;
cout<<max[0]<<endl;
cout<<" "<<endl;
cout<<max[1]<<endl;
cout<<" "<<endl;
cout<<max[2]<<endl;
for (i=0; i<n-1; i++) 
for (j=0; j<n-1; j++)
if (max[j+1]>max[j]){
                     tmp=max[j+1];
                     max[j+1]=max[j];
                     max[j]=tmp;
                     tmpp=mas[j+1];
                     mas[j+1]=mas[j];
                     mas[j]=tmpp;
                     }
 
 
 
//âûâîä Г¬Г*Г±Г±ГЁГўГ*
   for( i=0;i<n;i++)
{
for( j=0;j<n;j++)
cout<<mas[i][j]<<" ";
cout<<"\n";
   }
   
////////////////////////////
 
}
Yandex
Объявления
20.11.2012, 19:48     2-х массив сортировка
Ответ Создать тему
Опции темы

Текущее время: 21:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru