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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2013, 21:50   #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 **Array, int Line, int Column, int MaxElem)
{
	int Transfer=(Column-1);
    int String=Line+1;
    for(int i=0; i<String; i++)
    {
        for(int j=0; j<Column; j++)
        {
            if(Array[i][j] == MaxElem)
            {
                for(int k = i; k<String - 1; k++)
                    for(int a=0; a<Column; a++)
                    {
                        Array[k][a] = Array[k+1][a];
                    }
                String--;
                for(int l =  j; l<Column - 1; l++)
                {
                    for(int a=0; a<String; a++)
                    {
                        Array[a][l] = Array[a][l+1];
						Column--;
                    }
                }
                
            }
        }
    cout<<"Матрица модификации:"<<endl;

	 OutputArray(Array, Line, Column);
	}
}
void MaxElemArray(int **Array, int Line, int Column)
{
    int MaxElem=0; 
    int MaxLine=0, MaxColumn=0; 
 
    MaxElem = Array[0][0]; 
                               
    for(int i=0; i<Line; i++)    
        for(int j=0; j<Column; j++)        
            if(Array[i][j] < 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 тыс руб за месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не происходит удаление?Язык С++. RG21 Помощь студентам 0 28.05.2013 21:32
Не пойму в чем ошибка в программе. ( программа на удаление строки( введенной с консоли) из файла) dykatob Общие вопросы C/C++ 3 02.06.2011 22:15
Удаление строки и столбца sllh_111 Помощь студентам 1 18.03.2010 15:41
Удаление информации из файлов .mb: почему не происходит? Ruschel БД в Delphi 4 25.02.2010 09:22
удаление строки и столбца из матрицы Laplas Помощь студентам 3 08.01.2010 04:41