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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 21:32   #1
RG21
Пользователь
 
Регистрация: 17.04.2013
Сообщений: 15
По умолчанию Почему не происходит удаление?Язык С++.

Как сделать чтобы программа вывела массив с удалеными строками и столбцами.Вот задание:Сформировать двумерный массив. Удалить из него строку и столбец, на пересечении которых находится минимальный элемент.Вот код:
Код:
#include "stdafx.h"

#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
 
using namespace std; 
 
void OutputArray(int **Array, int Line, int Column)
{
    for(int i=0; i<Line; i++)
    {
        for(int j=0; j<Column; j++)        
            cout<<setw(3)<<Array[i][j]<<" ";        
        cout<<endl;
    }
}
 
void DeleteArray(int **NewArray, int Line, int Column, int MaxElem)
{
    int String=Line+1;
    for(int i=0; i<String; i++)
    {
        for(int j=0; j<Column; j++)
        {
            if(abs(NewArray[i][j]) == abs(MaxElem))
            {
                for(int k = i; k<String - 1; k++)
                    for(int a=0; a<Column; a++)
                    {
                        NewArray[k][a] = NewArray[k+1][a];
                    }
                String--;
                for(int l =  j; l<Column - 1; l++)
                {
                    for(int a=0; a<String; a++)
                    {
                        NewArray[a][l] = NewArray[a][l+1];
                    }
                }
                Column--;
            }
        }
    }
    
}
void MaxElemArray(int **Array, int Line, int Column)
{
    int MaxElem=0; 
    int MaxLine=0, MaxColumn=0; 
 
    MaxElem = abs(Array[0][0]); 
                               
    for(int i=0; i<Line; i++)    
        for(int j=0; j<Column; j++)        
            if(abs(Array[i][j]) > abs(MaxElem))
            {
                MaxElem = Array[i][j];
                MaxLine = i;
                MaxColumn = j;
            }            
    cout<<"Минимальный элемент: "<<MaxElem<<endl;
    cout<<"Координаты: ["<<MaxLine<<"]["<<MaxColumn<<"]"<<endl;
}
 
void GenerationArray(int **Array, int Line, int Column)
{
    for(int i=0; i<Line; i++)    
        for(int j=0; j<Column; j++)        
            Array[i][j] = rand() % 100 - 50;
    cout<<"Сгенерированный массив:"<<endl;
    OutputArray(Array, Line, Column);
    MaxElemArray(Array, Line, Column);
}
 
int main()
{
    setlocale(0, "rus"); 
    srand(time(NULL)); 
    int **Array; 
    int Line=0, Column=0; 
    cout<<"Количество строк в матрице: ";
    cin>>Line;
    cout<<"Количество столбцов в матрице: ";
    cin>>Column;
    Array = new int * [Line];
    for (int i=0; i<Line; i++)    
        Array[i] = new int[Column];    
    GenerationArray(Array, Line, Column);
	 cout<<"Матрица после модификации:"<<endl;
	OutputArray(Array, Line, Column);
    for (int i=0; i<Line; i++)    
        delete [] Array[i];
 system("pause");
    return 0;
}
RG21 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему происходит зацикливание? Arigato Общие вопросы Delphi 8 29.04.2013 19:06
Цикл Cardinal - почему так происходит? Nester Общие вопросы Delphi 2 28.07.2010 15:04
Удаление информации из файлов .mb: почему не происходит? Ruschel БД в Delphi 4 25.02.2010 09:22
Почему происходит сброс переменной password? NSvirus PHP 2 10.11.2009 16:07
Почему так происходит? Zeraim Общие вопросы Delphi 1 05.05.2008 14:10