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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2012, 23:02   #1
Paulsan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 18
По умолчанию сумма элементов матрицы

Здравствуйте. Такая задача: В массиве А[m][n] (m = n) сумму элементов над главной диагональю поделить на сумму элементов под главной диагональю. Элементы под глав-ной диагональю рассортировать по убыванию.
Помогите найти суммы элементов.

Код:
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	setlocale(LC_ALL, "Russian"); 
	int n; //размерность матрицы
    int i, j;
	cout<<"Введите размерность матрицы: ";
	cin>>n;
	int **A = new int* [n];  
		for (i=0; i<n; i++)
		{
			A[i]=new int[n];
			for (j=0; j<n; j++)
			{
				A[i][j] = rand()%10; //заполняем матрицу случайным образом 
			}
		}
		  cout<<"Сформированная матрица: "<<endl;
			for (i=0; i<n; i++)
        { cout<<endl;
            for (j=0; j<n; j++)       //вывод исходного массива
          cout<<A[i][j]<<" ";
        }  
		  cout<<endl;
		  cout<<endl;
		  system("pause");
}

Последний раз редактировалось ACE Valery; 07.01.2012 в 16:48.
Paulsan вне форума Ответить с цитированием
Старый 06.01.2012, 23:14   #2
sVasilich
Форумчанин
 
Аватар для sVasilich
 
Регистрация: 16.12.2009
Сообщений: 224
По умолчанию

Подсказка: когда m<n - это элемент над главной диагональю, когда m>n - под главной диагональю. (или наоборот... всегда путаю)
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...
sVasilich вне форума Ответить с цитированием
Старый 06.01.2012, 23:22   #3
Paulsan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 18
По умолчанию

не понятно, а как это сделать?
Paulsan вне форума Ответить с цитированием
Старый 06.01.2012, 23:34   #4
JuniorProger
Форумчанин
 
Регистрация: 16.09.2011
Сообщений: 114
По умолчанию

Код:
int underdiagonal, overdiagonal;

underdiagonal = 0; //сумма элементов под диагональю
overdiagonal = 0; //сумма элементов над диагональю

for (i=0; i<n; i++){
  for (j=0; j<n; j++){
    if (i>j){
      underdiagonal += A[i][j];
    };
    if (i<j){
      overdiagonal += A[i][j];
    };
  };
};

Последний раз редактировалось JuniorProger; 06.01.2012 в 23:42.
JuniorProger вне форума Ответить с цитированием
Старый 06.01.2012, 23:44   #5
Paulsan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 18
По умолчанию

Спасибо, но почему-то неправильно считает сумму
Уже понял, поменял один больше на меньше

Последний раз редактировалось Paulsan; 06.01.2012 в 23:47.
Paulsan вне форума Ответить с цитированием
Старый 06.01.2012, 23:49   #6
Paulsan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 18
По умолчанию

Спасибо, разобрался. А подскажите ещё, пожалуйста, как рассортировать элементы под главной диагональю по убыванию.

Последний раз редактировалось Paulsan; 07.01.2012 в 00:51.
Paulsan вне форума Ответить с цитированием
Старый 07.01.2012, 03:32   #7
JuniorProger
Форумчанин
 
Регистрация: 16.09.2011
Сообщений: 114
По умолчанию

Цитата:
А подскажите ещё, пожалуйста, как рассортировать элементы под главной диагональю по убыванию.
Подсказываю
Код:
int maxi,maxj;
int newi, newj, temp;

for (i=0; i<n; i++){
	for (j=0; j<i; j++){
		maxi = i;
		maxj = j;
		newi=i;
		newj=j+1;
		while(newi<n){
			while(newj<newi){
				if (A[newi][newj]>A[maxi][maxj]){
					maxi=newi;
					maxj=newj;
				};
				newj+=1;
			};
			newj = 0;
			newi+=1;
		};
		if((maxi!=i)||(maxj!=j)){
			temp = A[i][j];
			A[i][j] = A[maxi][maxj];
			A[maxi][maxj] = temp;
		};
	};
};

cout<<endl;
cout<<endl;

cout<<"Отсортированная матрица: "<<endl;
for (i=0; i<n; i++)
{ cout<<endl;
for (j=0; j<n; j++) //вывод исходного массива
cout<<A[i][j]<<" ";
}
JuniorProger вне форума Ответить с цитированием
Старый 07.01.2012, 10:49   #8
Paulsan
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 18
По умолчанию

Спасибо огромнейшее, JuniorProger!

Последний раз редактировалось Paulsan; 07.01.2012 в 11:48. Причина: задача решена
Paulsan вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма элементов матрицы Паркер Помощь студентам 3 25.11.2011 15:19
C++: сумма и произведение элементов матрицы Blondy Помощь студентам 13 12.04.2011 21:33
Сумма элементов матрицы DenProx Помощь студентам 2 19.12.2009 14:49
Сумма элементов из заштрихованной области матрицы pasha92 Помощь студентам 3 16.11.2009 18:54
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 21:13