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

Двумерный массив. Перемещение строк местами. - C++

Восстановить пароль Регистрация
 
z.a.m
49 / 0 / 1
Регистрация: 17.10.2010
Сообщений: 56
07.11.2010, 19:19     Двумерный массив. Перемещение строк местами. #1
Помогите разобраться пожалуйста, что не так?
Задание выглядит так
Составить программу, которая получает матрицу В размером m *n и два числа i<m и j<m. Если матрица в каждой четной строке имеет положительную сумму элементов, то программа формирует новую матрицу, меняя местами элементы строки с номером i на элементы строки с номером j исходной матрицы В
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
#include <iostream>
using namespace std;
int const n = 5;
int const m = 5;
bool function_1 (double);
void function_2 (double , int, int);
void input (double );
bool repeat (void);
void main (void)
{
    do
    {
    int i, j;
        cout << "Input i: ";
                cin >> i;
        cout << "Input j: ";
                cin >> j;
    double B[n][m];
    input((*B)[m]);
    if (function_1((*B)[m]))
        function_2((*B)[m], i, j);
    else 
        cout << "There is no nessesity to create a new file";
    } while (repeat());
}
bool repeat (void)
{
    char symbol;
    cin >> symbol;
    if ((char)tolower(symbol) == 'y')
        return 1;
    else 
        return 0;
}
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
#include <iostream>
using namespace std;
extern int const n = 5;
extern int const m = 5;
void input (double (*B)[m])
{
    cout <<  "Input elements of file\n";
    for (int str=0; str<n; str++)
    {
 
        for (int stl=0; stl<m; stl++)
        {
            cin >> B[str][stl];
        }
    }
}
void ouput (float (*B)[m], float (*newB)[m])
{
    cout <<  "\nn Old file\n";
    for (int str=0; str<n; str++)
    {
 
        for (int stl=0; stl<m; stl++)
        {
            cout << B[str][stl];
        }
    }
    cout << "\n\nNew file\n";
    for (int str=0; str<n; str++)
    {
 
        for (int stl=0; stl<m; stl++)
        {
            cout << newB[str][stl];
        }
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
extern int const n = 5;
extern int const m = 5;
bool function_1 (float (*B)[m])
{
    float sum, count=0;
    for (int str=0; str<n; str++)
    {
        sum=0;
        for (int stl=0; stl<m; stl++)
        {
            sum+=B[str][stl];
        }
        if (sum>0)
            count++;
    }
    if (count>=(n-1))
        return 1;
    else 
        return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
extern int const n = 5;
extern int const m = 5;
void output (double , double);
void function_2 (double (*B)[m], int i, int j)
{
    double newB[n][m], temp;
    for (int str=0; str<n; str++)
    {
 
        for (int stl=0; stl<m; stl++)
        {
            newB[n][m]=B[n][m];
        }
    }
 
    for (int stl=0; stl<m; stl++)
        {
            temp = newB[i][stl];
            newB[i][stl]=newB[j][stl];
            newB[j][stl]=temp;
        }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2010, 19:19     Двумерный массив. Перемещение строк местами.
Посмотрите здесь:

C++ Двумерный массив строк
написать двумерный массив и поменять в нем местами четные и нечетные элементы C++
Двумерный массив.Мах и Мин поменять местами... C++
C++ Дан двумерный массив. Поменять местами 1 и 3 строки
Двумерный массив: поменять местами две строки C++
Двумерный массив: поменять местами две строки C++
Двумерный массив. Поменять местами max и min четных строк C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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