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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 17:35   #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; 15.11.2012 в 17:39.
LeNZZZ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первый элемент - размерность матрицы, остальные образуют строки этой матрицы Anastasiya_Pot Помощь студентам 2 10.04.2012 09:46
Язык СИ! Динамическое выделение памяти под массивы и матрицы, передача матрицы в функции Андрей! Общие вопросы C/C++ 33 31.01.2012 22:07
С++.три матрицы, упорядочить строки той матрицы у которой больше нулевых строк Ирина1992 Помощь студентам 12 20.11.2011 13:01
Ф-ия, определяющая сумму строк матрицы, если на главной диагонали матрицы имеется отрицательный эл-т. Volk_xD Помощь студентам 6 05.01.2011 13:39
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19