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

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

Восстановить пароль Регистрация
 
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
16.03.2012, 17:43     Упорядочить указанные элементы матрицы,двумерный массив #1
МОДИФИКАЦИЯ ДВУМЕРНЫХ МАССИВОВ
Дана квадратная матрица целых чисел (nxn, где 1<=n<=10)
Упорядочить по возрастанию элементы в столбце с минимальным произведением.
Ввод, вывод и сортировку реализовать в виде отдельных функций.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2012, 17:43     Упорядочить указанные элементы матрицы,двумерный массив
Посмотрите здесь:

C++ Дан двумерный массив, вычислить произведение отрицательных элементов, заменить этим числом элементы второй строки матрицы
Ввести двумерный массив с клавиатуры и упорядочить его элементы по возрастанию. C++
Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по возрастанию массив C++
Двумерный массив.упорядочить массив по убыванию C++
Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
24.03.2012, 16:17  [ТС]     Упорядочить указанные элементы матрицы,двумерный массив #2
тут в общем то помощь нужна только с функцией сортировки
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
24.03.2012, 16:29     Упорядочить указанные элементы матрицы,двумерный массив #3
Цитата Сообщение от лизи Посмотреть сообщение
тут в общем то помощь нужна только с функцией сортировки
т.е. минимальный столбец уже найден?

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
float matrix[N][N];
...
void sort(float **m,int n) //n - номер столбца
{
    bool sort=true;
    while (sort==true) {
        sort=false;
        for (int i=0;i<N-1;i++) {
            if (m[i][n]<m[i+1][n]) {
                float buffer=m[i][n];
                m[i][n]=m[i+1][n];
                m[i+1][n]=buffer;
                sort=true;
                }
            }
        }
}
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
24.03.2012, 17:00  [ТС]     Упорядочить указанные элементы матрицы,двумерный массив #4
Nekto, нет не найден,под функцией сортировки я имелла ввиду что функции ввода и вывода массиво не нужны
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
24.03.2012, 17:35     Упорядочить указанные элементы матрицы,двумерный массив #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int search()
{
    float min=1.0;
    for (int i=0;i<N;i++) 
        min*=matrix[i][0];
    int index=0;
    for (int j=1;j<N;j++) {
        float s=1.0;
        for (int i=0;i<N;i++) 
            s*=matrix[i][j];
        if (s<min) {
            min=s;
            index=j;
        }
    }
    return index;
}
как-то так
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
24.03.2012, 22:08  [ТС]     Упорядочить указанные элементы матрицы,двумерный массив #6
Nekto, это коды на си?потому что функция сортировки мне совсем не понятна=(
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
24.03.2012, 22:59     Упорядочить указанные элементы матрицы,двумерный массив #7
Цитата Сообщение от лизи Посмотреть сообщение
Nekto, это коды на си?потому что функция сортировки мне совсем не понятна=(
Что именно там неясно? Можно убрать "float **m" и переименовать глобальную переменную на m
Оу, только я что-то одинаково назвал функцию и внутреннюю переменную sort функцию переименовать надо

Добавлено через 18 минут
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
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
const int N=5;
int matrix[N][N];
 
int search()
{
        float min=1.0;
        for (int i=0;i<N;i++) 
                min*=matrix[i][0];
        int index=0;
        for (int j=1;j<N;j++) {
                float s=1.0;
                for (int i=0;i<N;i++) 
                        s*=matrix[i][j];
                if (s<min) {
                        min=s;
                        index=j;
                }
        }
        return index;
}
 
void sortn(int n) //n - Г*îìåð ñòîëáöГ*
{
        bool sort=true;
        while (sort==true) {
                sort=false;
                for (int i=0;i<N-1;i++) {
                        if (matrix[i][n]>matrix[i+1][n]) {
                                float buffer=matrix[i][n];
                                matrix[i][n]=matrix[i+1][n];
                                matrix[i+1][n]=buffer;
                                sort=true;
                                }
                        }
                }
}
 
int main()
{
    srand(time(NULL));
    for (int i=0;i<N;i++)
        {
         for (int j=0;j<N;j++)
            {
                 matrix[i][j]= rand() % 100;
                 printf("%3d ",matrix[i][j]);
            }
         printf("\n");
        }
    printf("\n");
    sortn(search());
    for (int i=0;i<N;i++)
        {
         for (int j=0;j<N;j++)
            {
                 printf("%3d ",matrix[i][j]);
            }
         printf("\n");
        }
    getch();
    return 0;    
}
Осталось только по разным функциям ввод\вывод.

Код
 22  99  37  35  19
 45   0   8  92  98
 59  35  62   0  93
 77  55  43  19  39
 59  99  65  69  59

 22   0  37  35  19
 45  35   8  92  98
 59  55  62   0  93
 77  99  43  19  39
 59  99  65  69  59
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
25.03.2012, 13:49  [ТС]     Упорядочить указанные элементы матрицы,двумерный массив #8
Nekto, вот подредактировала
получается что то такое
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <stdio.h>  //onn libraries
#include <stdlib.h>
#include <time.h>
 
void input_arr(int arr[25][25],int *nn);
void output_arr(int arr[25][25],int nn);
int search(int a[25][25],int nn);
int sortn(int a[25][25], int *d, int *min);
 
 
int sortn(int a[25][25], int *d, int *min)
{int i, j, tmp;
    for(i=0;i<*d;i++)
        for(j=0;j<*d-1;j++)
        {
            if(a[j][*min]>a[j+1][*min])
            {
                tmp=a[j][*min];
                a[j][*min]=a[j+1][*min];
                a[j+1][*min]=tmp;
            }
        }
    return 0;
}
int search(int a[25][25],int nn)
 {int i,j,index;
float min,s;
min=1.0;
for ( i=0;i<nn;i++)
min*=a[i][0];
index=0;
for (  j=1;j<nn;j++)
{s=1.0;
for ( i=0;i<nn;i++)
s*=a[i][j];
                if (s<min) {
                        min=s;
                        index=j;
                }
        }
        return index;
}
 
void output_arr(int arr[25][25],int nn)  //output array
 { int i,j;
 
 
  for(i=0;i<nn;i++)
 {
    for(j=0;j<nn;j++)
        {
        printf("%d\t",arr[i][j]);\
         }
  printf("\n");
 }
 
 
}
void input_arr(int arr[25][25],int *nn) //input array
{ int i,j,m,p;
  printf("input number of array's elements=> ");
  scanf("%d",&m);
 
  for(i=0;i<m;i++)
  {for(j=0;j<m;j++)
   { printf("a[%d][%d]=",i,j);scanf("%d",&arr[i][j]);
 
   }
   printf("\n");
 *nn=m;
}
}
int main() //main function
{
 
 
 
int a[25][25],n,d,ser;
int c; float sort;
int  i,j;
do
  {input_arr(a,&n);
 ser=search( a,n);
 
    printf("\indexs=%d\n",ser);
   sort=sortn(a,n,d);
 
    output_arr(a,n);
    {printf("%3d ",a[i][j]);}
     
   }
  while (c!=0);
 
 
return 1;
}
не работает=((
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.03.2012, 14:34     Упорядочить указанные элементы матрицы,двумерный массив #9
Цитата Сообщение от лизи Посмотреть сообщение
Nekto, вот подредактировала
получается что то такое
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
int main() //main function
{
 
 
 
int a[25][25],n,d,ser;
int c; float sort;
int  i,j;
do
  {input_arr(a,&n);
 ser=search( a,n);
 
    printf("\indexs=%d\n",ser);
   sort=sortn(a,n,d);
 
    output_arr(a,n);
    {printf("%3d ",a[i][j]);}
     
   }
  while (c!=0);
 
 
return 1;
}
не работает=((
а зачем этот ду вайл? И чему изначально равно с? Оно вроде нигде не меняется.
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
25.03.2012, 14:57  [ТС]     Упорядочить указанные элементы матрицы,двумерный массив #10
Цитата Сообщение от Nekto Посмотреть сообщение
а зачем этот ду вайл? И чему изначально равно с? Оно вроде нигде не меняется.
я что то накосячила
я просто мэин скопировала из другой программы
и просто изменяла его под эту
и вот видимо тут промахнулась
не обратила внимания что с этого нету нигде
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2012, 13:02     Упорядочить указанные элементы матрицы,двумерный массив
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
лизи
 Аватар для лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
14.04.2012, 13:02  [ТС]     Упорядочить указанные элементы матрицы,двумерный массив #11
помощь больше не нужна
спасибо))
Yandex
Объявления
14.04.2012, 13:02     Упорядочить указанные элементы матрицы,двумерный массив
Ответ Создать тему
Опции темы

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