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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2012, 11:09   #1
LeNZZZ
Пользователь
 
Регистрация: 27.09.2012
Сообщений: 21
Сообщение Матрица

Всем привет!
Вопрос жизни и смерти..
Необходимо в этой программе поменять вывод нуля с левой части матрица на верхнюю часть матрицы.
Код:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <time.h> //Библиотека для работы со временем
 
void output ( int **, int ); //Создаем функцию вывода
void input  ( int **, int ); //Создаем функцию ввода
void func   ( int **, int ); //Создаем функцию сортировки элементов матрицы
 /* Все нулевые элементы размещены в левой части матрицы */
using namespace std;
int main() 
{
    srand ( time ( NULL ) ); // Генерирует случайные элементы матрицы
 
    int **matrix; //Создаем массив
 
   cout << "Size matrix: ";
    int N; //Вводим количество элементов в матрице
    cin >> N; 
 
    matrix = new int * [N]; // Выделяем память
    for ( int i = 0; i < N; i ++ )
        matrix[i] = new int [N]; //Для каждого символа один бит
 
    input   ( matrix, N ); //Используем функцию ввода 
    cout << "Matrix:\n";
    output  ( matrix, N ); //Используем функцию вывода
 
    func    ( matrix, N ); //Используем функцию сортировки
    cout << "Sort matrix:\n"; 
    output  ( matrix, N ); //Выводим элементы матрицы
	getch();
    return 0;
}
 
void output ( int **matrix, int N ) //Описываем функцию вывода
{
    cout << std::endl;
    for ( int i = 0; i < N; i ++ )
    {
           for ( int j = 0; j < N; j ++ )
                cout << matrix[i][j] << "\t";
           cout << std::endl;
    }
}
 
void input  ( int **matrix, int N )//Описываем функцию ввода
{
    for ( int i = 0; i < N; i ++ )
            for ( int j = 0; j < N; j ++ )
                    matrix[i][j] = rand() % 10;
}
 
void func   ( int **matrix, int N) //Описываем функцию сортировки
{
    for ( int i = 0; i < N; i ++ )
        for ( int j = 1; j < N; j ++ )
            if ( matrix[i][j] == 0 )
            {
                for ( int k = j; k > 0; k -- )
                {
                    matrix[i][k] = matrix[i][k-1];
                    matrix[i][k-1] = 0;
                }
            }
    }

Последний раз редактировалось Stilet; 19.11.2012 в 12:18.
LeNZZZ вне форума Ответить с цитированием
Старый 19.11.2012, 12:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с левой части матрица на верхнюю часть матрицы.
Вот что делает твой код:
Цитата:
Size matrix: 5
Matrix:

1 6 0 6 1
4 8 0 7 1
4 8 2 4 3
4 2 5 7 9
2 2 5 1 3
Sort matrix:

0 1 6 6 1
0 4 8 7 1
4 8 2 4 3
4 2 5 7 9
2 2 5 1 3
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
C++ матрица. camaro_ss Помощь студентам 7 30.01.2011 01:00
Матрица systemv Помощь студентам 2 12.11.2010 20:24
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11