Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 5
1

Сортировка столбцов матрицы

07.01.2011, 21:21. Показов 1238. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня вопрос..... попытался выполнить сортировку четных столбцов по убыванию.... у меня зацикливается на вложенном "for" который перед if
вот исходник, точнее его фрагмент:
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
void main()
{
 
      int x, y, i, key, temp;
      clrscr();                           
      cout << "Vvedite kol-vo strok: ";
      cin >> x;                           
      cout << "Vvedite kol-vo stolbcov : ";
      cin >> y;
      clrscr();
    
      int **matrix = new int *[x];  
      for (i=0; i<x; i++)
     matrix[i] = new int [y];   
 
do
        {
    printf(" \n viberite punkt ot1 do 4  \n");
    printf(" \n1 Vvod matrici vrucinuiu matrici \n");
    printf(" \n2 Generator slu4ainoi matrici \n");
    printf(" \n3 Vivod matrici \n");
           .....................................
    printf(" \n0 Vihod \n ");
    scanf(" %d", &key);
    switch(key)
    {
        case 1:
        {
        for (i=0; i<x; i++)
        for (int j=0; j<y; j++)
        {
            printf("Vvedite element matrici %d, %d", i+1, j+1);
            scanf("%d", &temp);
            matrix[i][j]=temp;
        }
        }
    break;
        case2:
        {
        for (i=0; i<x; i++)
        for (int j=0; j<y; j++)
        {
        matrix[i][j] = rand();     
        }
    }
    break;
        case 3:
    {
        printf ("\n Matrica polucivshaeasea ravna: \n");
    for (i=0; i<x; i++)
        {
        printf ("\n");
        for (int j=0; j<y; j++)
        printf ("%d \t", matrix[i][j]);
        }
    }
 
    break;
        case 4:
        {
        int trash=0;
 
        for (int i=1;  i<x ;  i+2)
        for (int j=0; j<y; j++)
          {
 
            
        for( k = y-j; k> j; k-- ) {     // вот на это цикле зацикливается
      if ( matrix[i][k-1] > a[i][k] ) {
      trash=a[i][k-1]; a[i][k-1]=a[i][k]; a[i][k]=trash;
            }
          }
        }
break;
}
}
 while(key!=0);
    printf(" konets. najmite liubuiu klavishu");
    getch();
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2011, 21:21
Ответы с готовыми решениями:

Сортировка столбцов матрицы по возрастанию последних элементов столбцов
Сортировка столбцов по росту последних элементов столбцов.Помогите пожалуйста, надо только фрагмент...

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

Сортировка столбцов матрицы
Кто-то может подсказать как сделать сортировку столбцов, а то у меня в строку нормально сортирует,...

Сортировка столбцов матрицы
Помагите пожалуйсто нужно отсортиовать столбцы матрицы по возростанию нижней строки например : ...

6
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
07.01.2011, 21:25 2
используй теги [CPP*][/CPP*], но без *, когда выкладываешь код. И все заголовные файлы тоже пиши сюда же, смотреть и подключать заново за тебя никто не собирается
пиши весь код сюда, у тебя там часть переменных не объявлено
Цитата Сообщение от Il186 Посмотреть сообщение
C++
1
2
3
printf(" \n3 Vivod matrici \n");
 .....................................
 printf(" \n0 Vihod \n ");
и вообще как такое понимать?
1
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 5
07.01.2011, 21:28  [ТС] 3
sandye51, спасибо за поправку........ буду знать....
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 5
07.01.2011, 21:30  [ТС] 4
Вот вложенный файл
Вложения
Тип файла: txt LAB4.txt (1.5 Кб, 20 просмотров)
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 5
07.01.2011, 21:31  [ТС] 5
ну там не точки.... а еще один printf
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
07.01.2011, 22:11 6
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
#include <conio.h>
#include <iostream>
#include <stdlib.h>     
#include <stdio.h>
#include <time.h>
#include <algorithm>
#include <vector>
 
using namespace std;
 
void main()
{
    srand((unsigned)time(NULL));
    int x, y, i, key, temp;
    cout << "Vvedite kol-vo strok: ";
    cin >> x;                        
    cout << "Vvedite kol-vo stolbcov : ";
    cin >> y;
    int **matrix = new int *[x]; 
    for (i = 0; i < x; i++)
        matrix[i] = new int [y];   
    do
    {
        printf(" \n viberite punkt ot1 do 3  \n");
        printf(" \n1 Vvod matrici vrucinuiu matrici \n");
        printf(" \n2 Generator slu4ainoi matrici \n");
        printf(" \n3 Vivod matrici \n");
        printf(" \n4 Sorting \n ");
        printf(" \n0 Vihod \n ");
        scanf(" %d", &key);
        switch(key)
        {
            case 1:
                {
                    for (i = 0; i < x; i++)
                        for (int j = 0; j < y; j++)
                        {
                            printf("Vvedite element matrici %d, %d", i + 1, j + 1);
                            scanf("%d", &temp);
                            matrix[i][j] = temp;
                        }
                }
                break;
            case 2:
                {
                    for (i = 0; i < x; i++)
                        for (int j = 0; j < y; j++)
                        {
                            matrix[i][j] = rand() % 100;    
                        }
                }
                break;
            case 3:
                {
                    printf ("\n Matrica polucivshaeasea ravna: \n");
                    for (i = 0; i < x; i++)
                    {
                        printf ("\n");
                        for (int j = 0; j < y; j++)
                            printf ("%d \t", matrix[i][j]);
                    }
                }
                break;
            case 4:
                {
#define a matrix
                    int trash;
                    for (int i = 1;  i < y ;  i += 2)
                    {
                        vector<int> v(x);
                        vector<int>::iterator it = v.begin();
                        for (int j = 0; j < x; ++j)
                            *it++ = matrix[j][i];
                        sort(v.begin(), v.end());
                        it = v.begin();
                        for (int j = 0; j < x; ++j)
                            matrix[j][i] = *it++;
                    }
                    break;
#undef a
                }
        }
    } while(key!=0);
    printf(" konets. najmite liubuiu klavishu");
    _getch();
 
    for (i = 0; i < x; ++i)
        delete[]matrix[i];
    delete[]matrix;
}
поправил ваш кривой код. Зацикливалось потому надо писать
C++
1
for (int i=1;  i<x ;  i+=2)
вместо
C++
1
for (int i=1;  i<x ;  i+2)
ведь у вас i не меняется получается в ходе цикла
1
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 5
09.01.2011, 00:23  [ТС] 7
спасибо большое)))) да знаю я....... не специалист в этом деле и невнимательный
0
09.01.2011, 00:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2011, 00:23
Помогаю со студенческими работами здесь

Сортировка столбцов матрицы
Было дано задание: &quot;Написать программу обработки матриц. Программа должна иметь текстовое меню,...

Fork() и сортировка столбцов матрицы
В общем такая беда. Целый день не могу понять что не так в моем коде. Задание такое. Мне нужно...

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

Сортировка столбцов матрицы по убыванию
дана матрица размером NxM надо отсортировать элементы столбцы в порядке убывание. Ввод данных с...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru