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

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

Войти
Регистрация
Восстановить пароль
 
valpri
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 32
#1

Перестановка строк матриц по убыванию ее характеристик - C++

08.05.2014, 12:50. Просмотров 237. Ответов 3
Метки нет (Все метки)

Соответственно само задание:
Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.
Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик.
Пробовал методом пузырька, но выдавала ошибку, что-то вроде - cannot convert int 4 to int in assignment Работаю в Code Blocks
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
#include <iostream>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int main()
{
const int m=5, n =4;
int i,j;
int b[m][n],sum[m];
for (int i=0; i <m; i++)
{
 for(int j=0; j <n; j++)
 {
    b[i][j] =rand()%21-10;
 
    cout<<b[i][j]<<' ';
    }
cout << endl;}
 
int num=-1;
for (j=0; j<m; j++)
   for (i=0; i<n; i++)
  {
         if (b[i][j]==0)
         {
               cout<<"Nomer stolbca: "<<j+1<<endl; break;
         }
 }
   for (i=0; i<m; i++)
  {
       sum[i] = 0;
       for (int j = 0; j < m; j++)
        if((b[i][j] < 0)&&(j%2))
            sum[i]+= b[i][j];
}
     for (i = 0; i < m; i++)
        cout << sum[i] << endl;
 
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 12:50     Перестановка строк матриц по убыванию ее характеристик
Посмотрите здесь:

перестановка строк в матрице С++ C++
Перестановка строк матрицы C++
C++ Упорядочить столбцы матрицы по убыванию их характеристик.
C++ Упорядочить столбцы матрицы по убыванию их характеристик
C++ Перестановка строк матрицы
Перестановка строк со столбцами C++
Перестановка строк в матрице (С++) C++
C++ Перестановка строк матрицы
C++ Упорядочивание столбцов по убыванию характеристик
Замена и перестановка элементов матриц C++
C++ Замена и перестановка элементов матриц
Перестановка строк в матрице C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4917 / 4255 / 1425
Регистрация: 14.04.2014
Сообщений: 16,726
08.05.2014, 14:24     Перестановка строк матриц по убыванию ее характеристик #2
Ты m с n не перепутал? Если обращаешься [i][j], то смотри, чтобы везде i было до m, j до n или наоборот, но чтобы правильно. И чётность надо от (j+1) определять, если нумеруешь матрицу с 1.
jurok_85
238 / 221 / 76
Регистрация: 21.02.2013
Сообщений: 515
Завершенные тесты: 1
08.05.2014, 14:35     Перестановка строк матриц по убыванию ее характеристик #3
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <stdio.h>
#include <iomanip>
using namespace std;
int main()
{
    srand(time(0));
    const int m=5, n =4;
    int i,j;
    int b[m][n];
    for (int i=0; i <m; i++)
    {
        for(int j=0; j <n; j++)
        {
            b[i][j] =rand()%21-10;
 
            cout<<setw(3) << b[i][j];
        }
        cout << endl;
    }
 
        bool flag = false;
    for (j=0; j<n; j++){
        for (i=0; i<m; i++)
            {
                if (b[i][j]==0)
                {
                    cout<<"Nomer stolbca: "<<j+1<<endl;
                    flag = true;
                    break;
                }
            }
            if(flag) break;
    }
    int sum , index;
    for(int N = 0; N != m - 1; N++)
    {
        int max = n* (-10);
        for(int i = N; i != m; i++)
        {
            sum = 0;
            for(int j = 0; j != n; j++)
            {
                if(b[i][j] < 0 && b[i][j]%2 == 0)
                sum += b[i][j];
            }
            if(sum > max)
            {
                max = sum;
                index = i;
            }
        }
 
        int temp[n];
        for(int j = 0; j < n; j++)
        {
            temp[j] = b[index][j];
            b[index][j] = b[N][j];
            b[N][j] = temp[j];
        }
 
    }
    cout << endl;
 
    for (int i=0; i <m; i++)
    {
        for(int j=0; j <n; j++)
        {
            cout<<setw(3) << b[i][j];
        }
        cout << endl;
    }
 return 0;
}
valpri
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 32
08.05.2014, 15:00  [ТС]     Перестановка строк матриц по убыванию ее характеристик #4
Понял, спасибо всем)
Yandex
Объявления
08.05.2014, 15:00     Перестановка строк матриц по убыванию ее характеристик
Ответ Создать тему
Опции темы

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