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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ArtiomCX75
Заблокирован
#1

Двумерные массивы 1. Характеристикой столбца целочисленной матрицы ... - C++

17.01.2010, 00:30. Просмотров 880. Ответов 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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <iostream>
using namespace std;
#include <clocale>
void main()
{
    setlocale(LC_ALL, "rus");
    int a[100][100];
    int b[100][100];
    int har [100];
    int t[100];
    int m,n,i,j,d,e,f;
    cout<<"\nvvedite kol-vo strok= ";
    cin>>m;
    cout<<"\nvvedite kol-vo stolbcov= ";
    cin>>n; 
    cout<<"\n\n\n\tzapolnyaem matricu...";
 
    i=1;
    while (i<=m)
    {
        j=1;
        while (j<=n)
        {
            cout<<"\na["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];
            j++;
        }
        i++;
    }
 
    cout<<"\n";
 
 
 
    
    // nahodin harakteristiki
    j=1;
    while (j<=n)
    {
        i=1;
        har[j]=0;
        while (i<=m)
        {
            if (a[i][j]<0&&a[i][j]%2==0)
            {
            har[j]=har[j]+(-1)*a[i][j];
            
            }
        i++;
        }
    j++;
 
    }
    j=1;
    while (j<=n)//vivodin harakteristiki
    {
        cout<<"\nhar["<<j<<"]="<<har[j];
        j++;
    }
 
    cout<<"\n";
 
     //sortirovka i sozdanie novoy matrici
    d=1;
    while (d<=n-1)
    {
        j=2;
        while (j<=n)
        {
            if (har[j]<har[j-1])
            {
                e=1;
                while (e<=n-1)
                                             //"A"
                {   
                    f=1;
                    while (f<=m)
                    {
                        b[f][j-1]=a[f][j];
                        b[f][j]=a[i][f-1];
                        f++;
                    }
                    e++;
                }
                                             //"B"
 
                t[j]=har[j];
                har[j]=har[j-1];
                har[j-1]=t[j];
            }
        j++;
        }
    d++;
    }
 
 
 
 
    j=1;
    while (j<=n)//vivodin harakteristiki
    {
        cout<<"\nhar["<<j<<"]="<<har[j];
        j++;
    }   
    cout<<"\n";
    //vivodim poluchennuyu matricu
    i=1;
    while (i<=m)
    {
        j=1;
        while (j<=n)
        {
            cout<<"\nb["<<i<<"]["<<j<<"]=";
            cout<<b[i][j];
            j++;
        }
        i++;
    }
}
я подозреваю, что ошибка кроется между "А" и "В" (строки 75-84).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2010, 00:30     Двумерные массивы 1. Характеристикой столбца целочисленной матрицы ...
Посмотрите здесь:

Характеристикой столбца целочисленной матрицы... C++
Двумерные массивы (матрицы) C++
C++ Двумерные массивы, надо написать программу по целочисленной прямоугольной матрице
Двумерные массивы- матрицы C++
Двумерные массивы. Разделить элементы каждого столбца на последний элемент столбца C++
Динамический массив. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы C++
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, распол C++
Многомерные массивы (В прямоугольной целочисленной матрицы определить сумму) C++
C++ Двумерные массивы (Определить Количество строк, номер столбца)
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов C++
Характеристикой строки целочисленной матрицы назовем сумму ее C++
C++ Двумерные массивы матрицы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.01.2010, 07:52     Двумерные массивы 1. Характеристикой столбца целочисленной матрицы ... #2
То что бросилось в глаза сразу:
Пишите:
Цитата Сообщение от ArtiomCX75 Посмотреть сообщение
сумму модулей его отрицательных нечетных элементов.
А сами реализуете так:
Цитата Сообщение от ArtiomCX75 Посмотреть сообщение
if (a[i][j]<0&&a[i][j]%2==0)
Сами признаете:
я подозреваю, что ошибка кроется между "А" и "В" (строки 75-84).
И в то же время не видите очевидной ошибки там:
Цитата Сообщение от ArtiomCX75 Посмотреть сообщение
b[f][j]=a[i][f-1];
Чему равно i в этом месте?

Зачем делать цикл
while (e<=n-1)
если он несколько раз выполняет одни и теже действия с одинаковым результатом?
Цитата Сообщение от ArtiomCX75 Посмотреть сообщение
e=1;
while (e<=n-1)
//"A"
{
f=1;
while (f<=m)
{
b[f][j-1]=a[f][j];
b[f][j]=a[i][f-1];
f++;
}
e++;
}
Yandex
Объявления
17.01.2010, 07:52     Двумерные массивы 1. Характеристикой столбца целочисленной матрицы ...
Ответ Создать тему
Опции темы

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