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

Вывести каждую вторую строку матрицы в обратном порядке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсия. Функция для вывода на экран следующей картинки: http://www.cyberforum.ru/cpp-beginners/thread847516.html
дано натуральное число n . Разработать рекурсивную функцию для вывода на экран следующей картинки: 1 (1 РАЗ) 222 (3 РАЗА) 33333 (5 раз) ... (n раз) 33333 (5 раз) 222 (3 РАЗА) 1 (1 РАЗ)
C++ шаблонный динамический класс DynArr Создать шаблонный динамический класс DynArr для работы с одномерными массивами. Осуществить перегрузки символов операций: «=« - Динамическое присвоение, «+« - По элементное добавления, «*«- Скалярное умножение массивов, «« - Доступ к элементу с контролем Товарищи прошу о вашей помощи,очень нужно,кто чем может помогите)))) http://www.cyberforum.ru/cpp-beginners/thread847515.html
Матрицы C++
Сдравствуйте. у меня есть пара вопросов на счет матриц: Можно ли как-нибудь разделить элементы матрицы на число типа double, если сама матрица типа int? Может ли матрица быть типа double? просто билдер почему то ругается когда я задаю ей тип double. Работаю над созданием программы для нахождения обратной матрицы. Сейчас я на стадии завершения, код достаточно специфический, нужно бесконца...
C++ создать матрицу из массива
Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановить исходную матрицу и напечатать ее по строкам. Помогите пожалуйсто с программой. хоть напишите от чего отталкиваться, при создании этой матрицы.
C++ Кольцевые списки, вывод http://www.cyberforum.ru/cpp-beginners/thread847468.html
Я лежал в больнице и пропустил тему списков, и вообще я ее не могу понять. Но есть долг задача Имеются сведения о пассажирах: фамилия, номер авиарейса, пункт назначения. Сведения сгруппированы по рейсам 1. Создать кольцевой однонаправленный список 2. Распечатать список 3. Упорядочить список по убыванию номера рейса 4. Добавить сведения о новом пассажире, поместив его после всех пассажиров...
C++ Даны целые положительные числа M, N и набор из N чисел. Сформировать матрицу размера MxN, у которой в каждой строке содержатся все числа из исходного Привет всем,.Помогите,пожалуйста: Даны целые положительные числа M, N и набор из N чисел. Сформировать матрицу размера MxN, у которой в каждой строке содержатся все числа из исходного набора. подробнее

Показать сообщение отдельно
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
24.04.2013, 23:28     Вывести каждую вторую строку матрицы в обратном порядке
vasilisa-9090, мой вариант

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
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <iterator>
#include <time.h>
#include <cstdlib>
using namespace std;
 
//отключаем варнинг рандомизации
#pragma warning(disable:4244)
 
//перегруженный оператор вывода матрицы
ostream &operator<<(ostream &strm, vector<vector<int> > &coll){
    strm << "Matrix:\n";
    for(size_t i = 0; i < coll.size(); ++i){
        cout << "\n\t";
        //выводим матрицу с помощью алгоритмы и лямбды
        for_each(coll[i].begin(), coll[i].end(), [&strm](int &elem)
        {
            strm << setw(3) << elem << ' ';
        });
    }
 
    return strm;
}
 
int main(int argc, char* argv[])
{
    srand(time(NULL));      //для генерации случайных чисел
 
    int size(4);            //размер квадратной матрицы
    vector<int> tmp(size);  //массив для строк
 
    //рандомно заполняем с помощью алгоритма и лямбды
    for_each(tmp.begin(), tmp.end(), [](int &elem){ elem = rand() % 21; });
 
    //наша квадратная матрица
    vector<vector<int> > coll(size);
 
    for(int i = 0; i < size; ++i){
        if(i & 1)
            //если нечетная строка заполняем в обратном порядке
            copy(tmp.rbegin(), tmp.rend(), back_inserter(coll[i]));
        else
            //ну тут понятно
            copy(tmp.begin(), tmp.end(), back_inserter(coll[i]));
    }
 
    //вывод матрицы с помощью перегруженного оператора поместить в поток
    cout << coll;
 
    cout << "\n\n";
    return 0;
}
Добавлено через 16 минут
vasilisa-9090, и вот попроще вариант

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
#include <iostream>
#include <iomanip>
using namespace std;
 
void output(int mas[][4], int size){
    cout << "Matrix:\n";
    for(int i = 0; i < size; ++i){
        cout << "\n\t";
        for(int j = 0; j < size; ++j)
            cout << setw(3) << mas[i][j] << ' ';
    }
}
 
int main(int argc, char* argv[])
{
    const int size(4);
    int arr[size] = {1,2,3,4};
 
    int mas[size][size];
 
    for(int i = 0; i < size; ++i){
        if(i % 2 == 0){
            for(int j = size - 1, k = 0; j >= 0; --j, k++)
                mas[i][k] = arr[j];
        }
        else{
            for(int j = 0; j < size; ++j)
                mas[i][j] = arr[j];
        }
    }
 
    output(mas, size);
 
    cout << "\n\n";
    return 0;
}
 
Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru