Nikaunett
1

Переделать код для сортировки массива на код для сортировки двумерной матрицы

13.01.2011, 14:16. Показов 851. Ответов 1
Метки нет (Все метки)

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

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
void sort(int A[],int n)
{int k,i,j;
for (i=1;i<n;i++)
{int v=A[i];
for(k=0;k<i && A[k]<v;k++);
for(int j=i-1;j>=k;j--)
A[j+1]=A[j];
A[k]=v;}
}
#include <stdio.h>
#include <math.h>
#include <conio.h>
# define n 6
int main()
{ int a[n];
int q,min,nom,s,per,vtr,o;
printf("Vvedite massiv iz 6 4isel");
for (q=0;q<n;q++)
scanf("%d",&a[q]);
 
int d=sizeof(a)/sizeof(int);
sort(a,d); 
printf("\n Nash massiv");
for(q=0;q<n;q++)
printf("%d",a[q]);
 
getch();
}
пыталась его переделать на
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
void sort(int A[20][20],int n)
{int k,i,j;
for(i=0;i<n;i++) 
for (j=1;j<n;j++)
{int v=A[i][j];
for(k=0;k<j && A[i][k]<v;k++);
for(int q=j-1;j>=k;q--)
A[i][q+1]=A[i][q];
A[i][k]=v;}
}
 
 
 
 
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main()
{ int a[20][20];
int i,j,n,o,str,w,;
printf("Vvedite n");
scanf("%d",&n);
printf("Vvedite matrix");
 for (i=0;i<n;i++)//q
 for(j=0;j<n;j++)//s
  {scanf("%d",&a[i][j]);}
  
  
int d=sizeof(a)/sizeof(int);
sort(a,d); 
  
  printf(" \n matriza \n");
  for (i=0;i<n;i++)
 {for(j=0;j<n;j++)
  printf("%d \t",a[i][j]);
  printf("\n");}
    getch();
}
но безуспешно.
Помогите пожалуйста разобраться
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2011, 14:16
Ответы с готовыми решениями:

Написать код для сортировки выбором для вещественных, целых чисел и латинских букв
здравствуйте! помогите написать код для сортировки выбором на си для вещественных, целых чисел и...

Код для сортировки (Прямой метод вставки)
Етот кусок кода надо доработать чтобы сортировал как надо.Тут используется Прямой метод вставки...

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

Переписать код сортировки массива с Pascal
Ребята-программисты друзья пожалуйста помогите человеку сдать лабу до нового года. Переведите этот...

1
2 / 2 / 1
Регистрация: 14.03.2010
Сообщений: 28
13.01.2011, 16:37 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
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
74
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
void sort ( int );
 
void sort ( int mas [20][20] )
{
        int i,j, tmp;
        bool chk = true;
 
        while ( chk )
        {
                chk = false;
 
                for ( i = 0; i < 20; i++ )
                {
                        for ( j = 0; j < 20; j ++)
                        {
                                if ( j == 20-1 && i == 20-1 )
                                break;
 
                                if ( i != 20-1 )
                                {
                                        if ( mas [i][j] < mas [i+1][j] )
                                        {
                                                tmp = mas [i][j];
                                                mas [i][j] = mas [i+1][j];
                                                mas [i+1][j] = tmp;
                                                chk = true;
                                        }
                                }
                        }
                }
        }
}
 
int main(int argc, char* argv[])
{
        int i,j, mas [20][20];
 
        for ( i = 0; i < 20; i++ )
        {
                for ( j = 0; j < 20; j++ )
                {
                        mas [i][j] = rand () % 9;
                }
        }
 
        sort ( mas );
 
        for ( i = 0; i < 20; i++ )
        {
                for ( j = 0; j< 20; j ++ )
                {
                        cout << mas [i][j] << " ";
                }
 
                cout << endl;
        }
 
        getch ();
 
        return 0;
}
//---------------------------------------------------------------------------
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2011, 16:37
Помогаю со студенческими работами здесь

Разобрать код сортировки
// Сортировка по возрастанию #include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &quot;stdlib.h&quot; ...

Сортировки для массива на миллион чисел
здраствуйте у меня задание надо написать 4-ре сортировки для массива на милион чисел и...

Не работает программа для сортировки массива строк
Здравствуйте. Из учебника Уэйта, Прата нашел программу для сортировки массива строк. После ввода 20...

Код выдает предупреждение (функция сортировки)
Здравствуйте! Уважаемые программисты я еще только учусь писать на языке программирования Си. Я...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru