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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2010, 00:17   #1
Santic
 
Регистрация: 15.12.2010
Сообщений: 7
Радость C++ задача с квадратной матрицей

Дана целочисленная квадратная матрица. Определить:
2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

В этом то задании я и затык. Написал код, сделал алгоритм, который считает сумму элементов диагоналей, только диагоналей близких к побочной. Далее он не считает. Поэтому, немного/может и много подумав, решил, что нужно уменьшать матрицу на одну строку и столбец, после того как в цикле будет посчитана диагональ, близкая к побочной. Вопрос, каким образом уменьшить на строку и столбец матрицу, после подсчёта суммы?

Вот код мой:

Код:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

int x[50][50], y[50][50], i, j, k, n, sum, sum1 = 0, sum2 = 0, min = 0;

int main()
{
	randomize(); clrscr();

	cout<<"Enter size of matrix: "; cin>>k; cout<<"\n";

	for (i = 0; i < k; i++)
	{
		cout<<"\n"<<"  ";
		for (j = 0; j < k; j++)
			{
			x[i][j] = (random(15)-5.2)/2.;
			cout<<x[i][j]<<"    ";
			}
	}

	cout<<"\n"<<"\n";
	
	for (i = 0; i < k; i++)
		{
		for (j = 0; j < k - i; j++)
			{
			y[i][j] = x[k - j - 1][k - i - 1];
			}
		}

	cout<<"sum:"<<"\n"<<"\n";

	for (j = 0; j < k; j++)
	{ sum = 0;
		for (i = 0; i < k; i++)
		{
	if (x[i][j] < 0) {sum = 0; break;}
		else
		sum += x[i][j];
		}
		cout<<"   "<<sum;
	}

	cout<<"\n"<<"\n";

//__________________________________________________________
//transponirovanie
		cout<<"matrix y:"<<"\n";

		for (i = 0; i < k; i++)
       		{
       		cout<<"\n"<<"  ";
       		for (j = 0; j < k; j++)
			{
			cout<<y[i][j]<<"    ";
			}
		}

//___________________________________________________________
//подсчёт суммы элементов диагоналей, параллельных побочной

	cout<<"\n"<<"\n";
	for (n = k; n > 0; n--)
	{
		for (i = 0; i < k - 1; i++)
			{
			 sum1 += x[i][k - i - 2];
			 sum2 += y[i][k - i - 2];
			}
	 }
		if (sum1 < sum2) min=sum1;
		else min=sum2;

	cout<<"up: "<<sum1<<"   "<<"down: "<<sum2<<"\n"<<"\n";
	cout<<"min sum: "<<abs(min);

	getch();
}
Santic вне форума Ответить с цитированием
Старый 16.12.2010, 00:25   #2
Santic
 
Регистрация: 15.12.2010
Сообщений: 7
По умолчанию

Код:
for (n = k; n > 0; n--)
	{
		for (i = 0; i < k - 1; i++)
			{
			 sum1 += x[i][k - i - 2];
			 sum2 += y[i][k - i - 2];
			}
	 }
Вот этот кусок больше меня интересует :D
Santic вне форума Ответить с цитированием
Старый 16.12.2010, 10:08   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Загляни сюда:http://www.programmersforum.ru/showp...3&postcount=31
Как раз недавно пример писал для всех.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.12.2010, 18:16   #4
Santic
 
Регистрация: 15.12.2010
Сообщений: 7
По умолчанию

Stilet, Спасибо. Этот алгоритм тоже надо будет усвоить и запомнить

Но в моём случае, всё оказалось до смешного просто - я не дописал одно выражение в цикле
Код:
for (n = k; n > 0; n--)
	{
		for (i = 0; i < k - 1; i++)
			{
			 sum1 += x[i][k - i - 2];
			 sum2 += y[i][k - i - 2];
			}
                        k--; //вот это выражение как раз даёт мне нужный результат.
	 }
По-моему никто не отвечал, потому что всё оказалось просто? :D
Santic вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с матрицей fightclub Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 15.01.2010 10:31
Задача с матрицей bonys91 Помощь студентам 1 02.04.2009 20:02
операции с квадратной матрицей HoOpe Общие вопросы C/C++ 6 01.04.2009 22:30
Задача с матрицей Kawun Помощь студентам 9 26.03.2009 00:29
Задача с матрицей H[o][o]K Помощь студентам 1 15.12.2007 16:51