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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2010, 15:10   #11
Megapixar
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 13
По умолчанию

free(mas);
free(p2);
а например такое освобождение после каждой генерации ни как не повлияет??

Последний раз редактировалось Megapixar; 01.04.2010 в 15:15.
Megapixar вне форума Ответить с цитированием
Старый 01.04.2010, 15:43   #12
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

Нет Там переполнение стека, а не памяти.
Хотя там у тебя лишние действия. Я бы совсем убрал
Код:
p2=(int*)realloc(mas,(n2-1)*sizeof(int));
									if(p2)
											mas=p2;
										else 
											return;
ибо ничего полезного там не делается. И еще можно сделать kvadrat[][] глобальной переменной, т.к. память под нее выделяется при каждом вызове подпрограммы.
evgn вне форума Ответить с цитированием
Старый 01.04.2010, 16:04   #13
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

Там же все очень просто....

Вот пользуйся

Код:
int _tmain(int argc, _TCHAR* argv[])//10
{ 
	
srand(time(NULL));
        do{
                generkv();
        }
        while(!proverka(*kvadrat,n1));

	return 0;
}
Код:
bool proverka(int *kvadrat,int nn)
{ int i,j;
double Sum,s1,s2,s3=0,s4=0;
Sum=nn*(nn*nn+1)/2;

for(i=0;i<nn;i++)
{ s1=0;

for(j=0;j<nn;j++)
s1=s1+ *(kvadrat + i*nn + j);

if(s1!=Sum)
        return false;
//generkv();// çäåñü åñëè ñòàâèòü printf("%f", s1); òî âñå ïå÷àòàåò, à åñëè âûçûâàòü ôóíêöèþ òî íå ðàáîòàåò.....
// printf("%f", s1);
}


for(i=0;i<nn;i++)
{
s2=0;
for(j=0;j<nn;j++)
s2=s2+ *(kvadrat + j*nn + i);


if(s2!=Sum)
return false;
//generkv();// çäåñü åñëè ñòàâèòü printf("%f", s2); òî âñå ïå÷àòàåò, à åñëè âûçûâàòü ôóíêöèþ òî íå ðàáîòàåò.....
//printf("%f", s2);
}


for(i=0;i<nn;i++)
{
for(j=0;j<nn;j++)
{if(i==j)
s3=s3+ *(kvadrat + i*nn + j);}
}
if (s3!=Sum)
return false;
//generkv();// çäåñü åñëè ñòàâèòü printf("%f", s3); òî âñå ïå÷àòàåò, à åñëè âûçûâàòü ôóíêöèþ òî íå ðàáîòàåò.....
//printf("%f", s3);
for(i=0;i<nn;i++)
{
for(j=0;j<nn;j++)
{if((i+j)==(nn-1))
s4=s4+ *(kvadrat + i*nn + j);}
}

if (s4!=Sum)
return false;
//generkv();// çäåñü åñëè ñòàâèòü printf("%f", s4); òî âñå ïå÷àòàåò, à åñëè âûçûâàòü ôóíêöèþ òî íå ðàáîòàåò.....
//printf("%f", s4);

if(s1==Sum && s2==Sum && s3==Sum && s4==Sum)
{
printf("[");
for(i=0;i<nn;i++)
{ printf("\n");
for(j=0;j<nn;j++)
printf(" %d ",*(kvadrat + i*nn + j));
}
printf("\n]\n");
return true;
}
else
printf(" f%ff %f %f %f %f",Sum,s1,s2,s3,s4);
}
evgn вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача двумерного динамического массива в метод Дырдин Общие вопросы C/C++ 1 19.03.2010 09:45
Си++. Передача массива в функцию. Diamond2107 Помощь студентам 7 03.12.2009 20:15
Передача массива в функцию D[I]K Общие вопросы C/C++ 4 13.09.2009 21:31
передача массива в функцию JOFRIF Общие вопросы C/C++ 8 02.08.2009 12:46
Передача двумерного массива аля матрицы из функции bondik Общие вопросы C/C++ 1 20.05.2009 15:46