Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 12.04.2009, 02:00   #1
juventine
 
Регистрация: 12.04.2009
Сообщений: 4
Репутация: 10
По умолчанию динамически выделить память под верхний треугольник квадратной матрицы

прога все считает, но в конце выдается системная ошибка... я пришел к выводу, что ошибка - в выделении памяти под верхний треугольник матрицы... кто подскажет, в чем я не прав?... заранее спасибо...

вот часть текста:
Код:
#include "stdafx.h"
#include <iostream>
//#include <math.h>
using namespace std;
void main(void)
{
setlocale(LC_ALL,".1251");
int  i, j, N, k = 0, l = 0, x = 0, q = 0, *a, y = 0, s = 0;
	double sr = 0, sum = 0, *c, min =0,  max = 0;
	cout<<"  Программа:"<<endl;
	cout<<"  1) Вводит целочисленную квадратную матрицу, такую, что а[i,j]=a[j,i] для всех i,j;"<<endl;
	cout<<"  2) Находит максимальный элемент в тех столбцах, которые не содержат положительных элементов"<<endl;
	cout<<"  3) Находит минимум среди средних значений элементов диагоналей, параллельных побочной диагонали матрицы"<<endl<<endl;
	while(1 == 1)
	{
		cout<<endl<<"Задайте размер матрицы(N <= 10):  ";
		cin>>N;
		if(N <= 10 && N > 1) break;
		else cout<<endl<<"Будьте внимательны при вводе! Некорректный размер матрицы!!!"<<endl;
	
	}
	
	 s = N;
	a = new int [N];
	c = new double [N];

	int **mas = new int*[N];
	for(i = 0; i < N; i++)
	{	
		mas[i] = new int[N-i];
		//s--;
    }
	

	cout<<"Введите элементы матрицы, расположенные выше главной диагонали, включая главную диагональ:"<<endl;
	for(i = 1; i <= N; i++ )
	{
		k++;
		for(j = k; j <= N; j++)
		{
			
			cout<<"Элемент матрицы ["<<i<<"]["<<j<<"] = ";
		
		cin>>mas[i-1][j-1];
		cout<<"element ["<<i-1<<"]["<<j-1<<"]="<<mas[i-1][j-1]<<endl<<endl;
		
		}
		
	}

Последний раз редактировалось MaTBeu; 12.04.2009 в 14:11.
juventine вне форума   Ответить с цитированием
Старый 12.04.2009, 09:33   #2
Mikola-TEAM
Пользователь
 
Регистрация: 31.05.2008
Адрес: Minsk
Сообщений: 34
Репутация: 40
По умолчанию

В этой части текста всё нормально компилируется и выполняется.
Mikola-TEAM вне форума   Ответить с цитированием
Старый 12.04.2009, 13:06   #3
juventine
 
Регистрация: 12.04.2009
Сообщений: 4
Репутация: 10
По умолчанию

Это в зависимости от того, какую размерность указать... и, вообще, ошибка системная не систематически возникает... при малом размере матрицы ошибка редко возникает, при большом - чаще... но стоит выделить больше памяти, чем требуется, как злополучной системной ошибки как не бывало...
просто не понимаю, в чем дело..)))
juventine вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить максимальный элемент из квадратной матрицы rev1ver Паскаль 6 20.01.2009 16:31
Алгоритм заполнения квадратной матрицы по спирали beregok Помощь студентам 3 15.01.2009 17:56
транспонирование квадратной матрицы 777UFO777 Общие вопросы Delphi 1 04.12.2008 20:31
Определитель квадратной матрицы Tomoyo Помощь студентам 22 04.11.2008 23:37
Не могу выделить память для трёхмерного массива Blister Помощь студентам 3 19.12.2007 08:25


13:23.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.