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

статические массивы - C++

Восстановить пароль Регистрация
 
IrinaSS
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 20
26.11.2010, 19:53     статические массивы #1
Помогите, пожалуйста)
Нужно выполнить следующее задание с использованием статических массивов:

Дана квадратная матрица. Упорядочить ее строки по неубыванию сумм элементов строк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2010, 19:53     статические массивы
Посмотрите здесь:

Одномерные статические массивы C++
двумерные статические массивы C++
Одномерные статические массивы C++
C++ Статические массивы
статические массивы, члены класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorox
 Аватар для Vorox
25 / 24 / 3
Регистрация: 26.11.2010
Сообщений: 57
26.11.2010, 22:36     статические массивы #2
Правильно ли я понял задание?
Есть матрица:
2 -2 8
3 6 -3
5 7 4
Вычисляем сумму элементов каждой строки:
8
6
16
Переставляем строки в соответствии с условием:
3 6 -3
2 -2 8
5 7 4

Так должна работать?
IrinaSS
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 20
26.11.2010, 23:11  [ТС]     статические массивы #3
да, работать должна так)
Vorox
 Аватар для Vorox
25 / 24 / 3
Регистрация: 26.11.2010
Сообщений: 57
27.11.2010, 00:31     статические массивы #4
А как должна происходить инициализация матрицы(чтение из файла/ввод значений с клавиатуры/ случайным образом)?

Добавлено через 39 минут
Сделано:
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
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    int a[5][5]={1,5,3,6,4, //инициализация квадратной матрицы  19
                 2,4,3,8,1, //                                  18
                 8,12,5,7,14,//                                 46
                 4,8,3,9,10, //                                 34
                 5,6,7,1,2};//                                  21
    int r[5]; //вспомогательная матрица для хранения новых позиций строк
    cout<<"Исходная матрица:\n";
    for(int i=0;i<5;i++) //вывод исходной матрицы на экран
    {
        for(int j=0;j<5;j++)
            cout<<a[i][j]<<" ";
        cout<<"\n";
    }
    bool flag; //флаг отвечающий за выход из цикла
    do
    { //сортируем строки 
        flag=false;
        for(int i=0;i<4;i++)
        {
            int S1=0; int S2=0; //суммы текущей и последующей строки
            for(int j=0;j<5;j++)
            {
                S1+=a[i][j]; //вычисление суммы
                S2+=a[i+1][j];
            }
            if(S1>S2) //сравнение сумм
            {
                int tmp;
                for(int j=0;j<5;j++) //переприсвоение элементов строк
                {
                    tmp=a[i][j];
                    a[i][j]=a[i+1][j];
                    a[i+1][j]=tmp;
                }
                flag=true; //была произведена какая-та перестановка строк
            }
        }
    }while(flag); // выполняем цикл до тех пор пока за 1 итерацию мы не поменяем ни одну строку с другой строкой
    cout<<"Результат:\n";
    for(int i=0;i<5;i++) //вывод результата
    {
        for(int j=0;j<5;j++)
            cout<<a[i][j]<<" ";
        cout<<"\n";
    }
    getch();
    return 0;
}
Добавлено через 24 минуты
эммм... поторопился. 12 строчка не в тему, удалите ее.
IrinaSS
0 / 0 / 0
Регистрация: 05.11.2010
Сообщений: 20
27.11.2010, 14:30  [ТС]     статические массивы #5
матрица скорее всего должна вводиться с клавиатуры... к тому же у нас неизвестно, сколько элементов содержит строка/столбец матрицы
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
27.11.2010, 14:41     статические массивы #6
Цитата Сообщение от IrinaSS Посмотреть сообщение
к тому же у нас неизвестно, сколько элементов содержит строка/столбец матрицы
если это статическая матрица, то размер покатит любой, его можно просто в программе подредачить, самое главное чтобы размерности матрицы задавались с помощью макросов или просто именованных констант типа:
C
1
const int m = 5, n = 3
или
C
1
2
#define m 5
#define n 3
матрица будет выглядеть так в коде сверху
C
1
a[m][n]
если же надо будет изменить количество то это сделать можно просто изменением значений констант
Yandex
Объявления
27.11.2010, 14:41     статические массивы
Ответ Создать тему
Опции темы

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