Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2017, 23:19   #1
АлиМяу
Новичок
Джуниор
 
Регистрация: 14.06.2017
Сообщений: 1
Смущение Поменять местами столбцы матрицы - C++

Задание:
Дан двумерный массив размером NxN, элементы которого целые случайные числа. Если количество столбцов в массиве четное, то поменять столбцы местами по правилу: первый столбец со вторым, третий с четвертым и т.д. Если количество столбцов в массиве нечетное, то оставить массив без изменений.
Имеется работающий код с cout и cin, нужно переделать его на код с printf и scanf, без использования регулярных выражений и т. д. Препод не принимает такой код .


Код:
#include <iostream> 
#include <ctime> 
#include <cstdlib> 
#include <iomanip> 
using namespace std; 
int main() 
{   
    setlocale(0, "rus");
    srand((unsigned) time(0));
    int x, y;  
    int i,j;
 
    cout << "Введите количество строк " << endl; 
    cin >> x; 
    cout << "Введите количество столбцов " << endl; 
    cin >> y;
 
    int** array; // динамически выделяем память
 
    array = new int*[x]; 
 
    for ( i = 0; i < y; i++) 
        array[i] = new int [y]; 
 
    for ( i = 0; i < x; i++)  // заполняем случайными числами
        for ( j = 0; j < y; j++) 
            array[i][j] = rand() % 100; 
 
    for ( i = 0; i < x; i++)  // выводим исходную матрицу
        for ( j = 0; j < y; j++) 
        { 
            if( j % y == 0) 
                cout << endl; 
            cout << setw(3) << array[i][j]; 
        } 
        cout << endl;  
 
        if( y % 2 == 0)  // если чётно меняем местами
        {
 
            for ( j = 0; j < y; j++)  
            {
                for ( i = 0; i < x; i++) 
                { 
                    int temp = array[i][j]; 
                    array[i][j] = array[i][j+1]; 
                    array[i][j+1] = temp;  
                }  
                j++;
                
            } 
 
 
            for ( i = 0; i < x; i++) // выводим отсортированную
        for ( j = 0; j < y; j++) 
        { 
            if( j % y == 0) 
                cout << endl; 
            cout << setw(3) << array[i][j]; 
        } 
        cout << endl;   
        } 
 
        else  // иначе выводи исходную
        {
            for ( i = 0; i < x; i++) 
        for ( j = 0; j < y; j++) 
        { 
            if( j % y == 0) 
                cout << endl; 
            cout << setw(3) << array[i][j]; 
        } 
        cout << endl;   
        }   
 
        delete array;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 15.06.2017 в 09:43.
АлиМяу вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять местами средние столбцы Boys Паскаль, Turbo Pascal, PascalABC.NET 3 03.11.2015 12:55
Поменять местами столбцы матрицы по правилу. Leshii Общие вопросы C/C++ 4 28.04.2012 18:58
Поменять местами столбцы в массиве Naposaram Общие вопросы Delphi 5 03.04.2012 22:32
Поменять в таблице exel столбцы местами marYna Microsoft Office Excel 2 15.01.2009 18:40
поменять местами столбцы veter_s_morya SQL, базы данных 4 29.06.2008 13:36