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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2012, 16:37   #1
Vally
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 11
По умолчанию найти ошибку в программе (С++)

Всем привет! Есть программа,которая удаляет строки из двумерного массива,оставшиеся строки должны быть расположены плотно,недостающие элементы заменяются 0. С помощью разработанных функций исключить из массива строк с номерами А до В. Программа работает,но если ввести количество строк =25, а количество столбцов 40,программа сразу вылетает. Помогите пожалуйста разобраться,почему при этих значениях прога не работает!!))
Код:
#include "stdafx.h"
#include "time.h"
#include "stdlib.h"
#include "conio.h"
#include "iostream"
using namespace std;


int str=0, kolumn=0;
void Printing(int **m, int a=0, int b=0)
{
	

	
	for(int i=0, j=0; i<a; i++)
	{
		for(j=0; j<b; j++)
		{cout<<m[i][j]<<" ";}
		cout<<endl;
	}
}
int main()
{	

	int **mas;
	char ch;
	srand(time(0));
	cout<<"Vvivodim massive"<<endl;
	cout<<"Vvedite kol-vo strok = ";
	cin>>str;
	cout<<"Vvedite kol-vo stolbtsov = ";
	cin>>kolumn;
	mas = new int * [str];
	for(int i=0; i<kolumn; i++)
	{ mas[i]= new int [kolumn]; }
for(int i=0, j=0; i<str; i++)
{
	for(j=0; j<kolumn; j++)
	{
			mas[i][j]=rand()%100;
	}
}
Printing(mas,str, kolumn);
cout<<"ydal stroky (y/n)=> ";
cin>>ch;
if(ch=='y')
{
	int **mas2=new int * [str];
	for(int i=0; i<kolumn; i++)
{ mas2[i]= new int [kolumn]; }
	cout<<"number stroki => ";
	int k=0;
	cin>>k;
	k--;
	for(int i=0, j=0; i<str; i++)
	{
		if(i==k){continue;}
		for(j=0; j<kolumn; j++)
		{cout<<mas[i][j]<<" "; mas2[i][j]=mas[i][j];}
		cout<<endl;
	}
	for(int j=0; j<kolumn; j++)
		{cout<<"0 ";mas2[k][j];}
	mas=mas2;
}
cout<<"\nisklychat (y/n) => ";
cin>>ch;
if(ch=='y')
{
int a=0,b=0;
cout<<"A= ";
cin>>a;
cout<<"B= ";
cin>>b;
a--;b--;

for(int i=0, j=0; i<str; i++)
	{
		if((i >= a) && (i<=b)){for(int z=0; z<kolumn;z++){cout<<"0 ";}cout<<endl;continue;}
		for(j=0; j<kolumn; j++)
		{
			cout<<mas[i][j]<<" ";
		}
		cout<<endl;
	}
}
_getch();
	return 0;
}
Vally вне форума Ответить с цитированием
Старый 17.01.2012, 16:53   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Неправильно ты, дядя Федор, бутерброд ешь... (с)

Код:
    int **mas = new int *[rows];
    for (int i = 0; i < rows; i++)
        mas[i] = new int[columns];
и не забывай освобождать память в конце:
Код:
    for(int i = 0; i < rows; i++)
        delete[] mas[i];
    delete[] mas;
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 17.01.2012 в 16:57.
Mandrivnyk вне форума Ответить с цитированием
Старый 17.01.2012, 16:54   #3
AlexDark
Форумчанин
 
Аватар для AlexDark
 
Регистрация: 23.12.2011
Сообщений: 117
По умолчанию

там и во втором случае

Код:
if(ch=='y')
{
	int **mas2=new int * [str];
	for(int i=0; i<str; i++)
{ mas2[i]= new int [kolumn]; }
AlexDark вне форума Ответить с цитированием
Старый 17.01.2012, 18:08   #4
Vally
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 11
По умолчанию

Спасибо большое вам,я уже разобралась)))))
Vally вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно найти ошибку в программе (С++) STIFFmaster_LP Помощь студентам 13 24.01.2010 00:44
Помогите найти ошибку в программе(СИ) Ker_33rus Общие вопросы C/C++ 7 19.10.2009 20:03
Помогите найти ошибку в программе Nemles Помощь студентам 0 14.06.2009 14:21
Помогите найти ошибку в программе Wast Паскаль, Turbo Pascal, PascalABC.NET 2 29.12.2008 20:40
Помогите найти ошибку в программе KnDmPetr Паскаль, Turbo Pascal, PascalABC.NET 5 10.03.2008 14:19