Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Наська_91
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 12
#1

Реверс масива по строках. - C++

12.02.2011, 17:23. Просмотров 417. Ответов 5
Метки нет (Все метки)

Задание: Поменять первую строку с последней, вторую с предпоследней и так далее.

http://www.cyberforum.ru/cpp-beginners/thread1729553.html
Я делаю вот так:
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
# include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand(time(NULL));
    const int row=4, col=5, a=-20, b=20;
    double matrix [col][row];
    double res=0;
    int kilkist_0=0;
    cout<<"MATRIX 5x4:"<<endl<<endl;
    for (int i=1; i<=row; i++)
    {
        for (int j=1; j<=col; j++)
        {
            matrix[i][j]=a+rand()%(b-a+1);
            cout<<"["<<i<<"]["<<j<<"]="<<matrix[i][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl;
    for (int i=1; i<=row/2; i++)
    {
        for (int j=1; j<=col; j++)
        {
            res=matrix[i][j];
            matrix[i][j]=matrix[row-i+1][j];
            matrix[row-i+1][j]=res;
        }
    }
    cout<<"REVERS MATRIX: \n";
    for (int i=1; i<=row; i++)
    {
        for (int j=1; j<=col; j++)
        {
            cout<<"["<<i<<"]["<<j<<"]="<<matrix[i][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl;
    return 0;
}
Что здесь не так!?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2011, 17:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Реверс масива по строках. (C++):

Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных строках.
Дан целый массив максимальной размерности 20*20. Провести сортировку по...

Элементы, расположеные на главной диагонали, в первых 3 строках выше диагонали и в последних 2 строках ниже диагонали переместить в одномерный массив
Нужно элементы расположены на главной диагонали, в первых 3 строках выше...

Реверс списка
Скажите пожалуйста правильна ли логика реверса void IntList::Revers() { ...

Реверс массива
Нужно сделать реверс чисел в массиве, написал код, но выдаёт при вводе 1 2 3 4...

Бит реверс
Вводится число в десятичной системе надо записать его в двоичной и перевернуть....

5
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.02.2011, 17:31 #2
особо не всматривался но нумерация массивов идет с 0, а у вас с 1 и кажется вы путаете rows и cols
0
Наська_91
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 12
12.02.2011, 17:32  [ТС] #3
Maxwe11, Если я ставлю с нуля, то там еще больше ошибок получается...
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.02.2011, 17:38 #4
C++
1
for (int i = 0; i < row; i++) //   0 <= i < row
Добавлено через 2 минуты
c col аналогично)
0
Наська_91
0 / 0 / 0
Регистрация: 15.01.2011
Сообщений: 12
12.02.2011, 17:40  [ТС] #5
Maxwe11, сделала с нуля...
И вот что получается:
Реверс масива по строках.
И еще выдает вот такую ошибку:
Реверс масива по строках.
0
Jupiter
Каратель
Эксперт С++
6568 / 3989 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.02.2011, 18:01 #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
//Поменять первую строку с последней, вторую с предпоследней и так далее.
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    const int row = 4; //строки
    const int col=5; // столбцы
    const int a=-20, b=20;
    double matrix[row][col]; //сначала строки потом столбцы
    double res=0;
    int kilkist_0=0;
    cout<<"MATRIX 4x5:"<<endl<<endl;
    for (int i=0; i<row; i++)
    {
    for (int j=0; j<col; j++)
           {
        matrix[i][j]=a+rand()%(b-a+1);
               cout<<"["<<i<<"]["<<j<<"]="<<matrix[i][j]<<"\t";
           }
           cout<<endl;
     }
     cout<<endl;
     for (int i=0; i<row/2; i++)
     {
    for (int j=0; j<col; j++)
           {
                res=matrix[i][j];
                matrix[i][j]=matrix[row-i-1][j]; //здесь у вас была ошибка в индексах
                matrix[row-i-1][j]=res; // ну и здесь тоже
    }
    }
    cout<<"REVERS MATRIX: \n";
    for (int i=0; i<row; i++)
    {
        for (int j=0; j<col; j++)
        {
            cout<<"["<<i<<"]["<<j<<"]="<<matrix[i][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl;
    getchar();
    return 0;
}
2
12.02.2011, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2011, 18:01
Привет! Вот еще темы с решениями:

Реверс в файлах
Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и...

Реверс списка
Есть односвязный список. Требуется создать реверс списка, после чего продлить...

Реверс массива
Задание такое: Нужно сделать массив из 30 чисел, чтобы он отображался на экране...

Реверс числа
Напишите функцию, выполняющую реверсию целого положительного числа, не...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru