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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2011, 10:25   #1
beavis1990
 
Регистрация: 18.07.2011
Сообщений: 4
По умолчанию Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы

Здравствуйте. Помогите пожалуйста написать программу на С++
по этому заданию "Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы".
или если можно то написать алгоритм решения, не могу понять как заставить программу просматривать именно диагонали матрицы.
beavis1990 вне форума Ответить с цитированием
Старый 20.08.2011, 11:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
не могу понять как заставить программу просматривать именно диагонали матрицы.
Если прогуливали математику, то нарисуйте матрицу, выпишите индексы у диагоналей и посмотрите.
p51x вне форума Ответить с цитированием
Старый 20.08.2011, 13:24   #3
beavis1990
 
Регистрация: 18.07.2011
Сообщений: 4
По умолчанию

i<j

a[0][3]
a[0][2]+a[1][3]
a[0][1]+a[1][2]+a[2][3]

i=j

a[0][0]+a[1][1]+a[2][2]+a[3][3]

i>j

a[1][0]+a[2][1]+a[3][2]
a[2][0]+a[3][1]
a[3][0]

получается 3 цикла, но при каких условиях программа будет их просматривать именно в этом порядке?
beavis1990 вне форума Ответить с цитированием
Старый 20.08.2011, 14:12   #4
Gera777
 
Регистрация: 30.07.2010
Сообщений: 4
По умолчанию

Диагонали параллельные основной это всегда не меньше размерности матрицы. Например:
a[0][3]+a[1][0]+a[2][1]+a[3][2]
a[0][2]+a[1][3]+a[2][0]+a[3][1]
a[0][1]+a[1][2]+a[2][3]+a[3][0]

Не замечаете закономерность?
Gera777 вне форума Ответить с цитированием
Старый 20.08.2011, 14:36   #5
Gera777
 
Регистрация: 30.07.2010
Сообщений: 4
По умолчанию

Это учебная задача. Решение:
Код:
#include "stdafx.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	const int size = 4;
	int matr[size][size];
	for (int i = 0; i<size; ++i)
	{
		for (int j = 0; j<size; j++)
		{
			matr[i][j] = rand()%10;
			cout<<matr[i][j]<<"\t";
		}
		cout<<"\n";
	}

	for (int i = 0; i<size; ++i)
	{
		int index = i;
		int sum = 0;
		for (int j = 0; j<size; ++j)
		{
			cout<<"matr["<<index<<"]["<<j<<"]";
			sum += matr[index++][j];
			if (index == size)
				index = 0;
			if (j != size - 1)
				cout<<" + ";
		}
		cout<<" = "<<sum<<"\n";
	}

	cin.get();
	return 0;
}
Gera777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму элементов матрицы главной и побочной диагонали...(( Анастасия01 Помощь студентам 4 30.06.2011 13:52
Найти сумму элементов главной диагонали матрицы (Паскаль.) r.elen Помощь студентам 10 14.04.2011 13:24
максумум сумм элементов диагоналей //главной Monomah Общие вопросы C/C++ 2 01.12.2010 01:11
Вычисление сумм элементов матрицы А размера n x n, лежащих выше, ниже и на главной диагонали Tomoa Microsoft Office Word 8 04.04.2010 20:18
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15