Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
#1

сумма элементов матрицы - C++

07.01.2012, 00:44. Просмотров 802. Ответов 7
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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");
}
Добавлено через 45 минут
сумму находит правильно, но не вычисляет частное сумм, подскажите в чём ошибка.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 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];
    }
  }
}
      cout<<"Сумма элементов над главной диагональю: "<<overdiagonal<<endl;
      cout<<"Сумма элементов под главной диагональю: "<<underdiagonal<<endl;
      float sum;
      sum=overdiagonal/underdiagonal;
      cout<<"Частное сумм: "<<sum;
      cout<<endl;
Добавлено через 33 минуты
Разобрался. А подскажите, пожалуйста, как рассортировать элементы под главной диагональю по убыванию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2012, 00:44     сумма элементов матрицы
Посмотрите здесь:

Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная - C++
как я могу писать эту задачу. Задана матрица целых чисел. Выполнить сортировку элементоь в той строке матрицы сумма элементов в которой...

Для матрицы найти такие k и n, что сумма элементов k-столбца совпадает с суммой элементов n-й строки - C++
Для заданной матрицы размера NхN найти такие k и n, что сумма элементов k-столбца матрицы совпадает с суммой элементов n-й строки. ...

Если сумма индексов каких-либо двух элементов матрицы, расположенных ниже главной диагонали, равна минимальному элементу матрицы, то.. - C++
Дана квадратная матрица А порядка N, состоящая из натуральных чисел. Если сумма индексов каких-либо двух элементов матрицы, расположенных...

сумма элементов матрицы - C++
С клавиатуры вводится размерность целочисленной матрицы,затем сама матрица.Найти сумму всех элементов.Разрешается при этом использовать...

сумма элементов матрицы - C++
Надо подсчитать сумму элементов каждого столбца матрицы, у меня программа выводит только сумму первого столбца. Помогите вывести сумму всех...

Сумма элементов матрицы. - C++
Здравствуйте товарищи) помогите пожалуйста решить следующую задачку: Дана матрица 4х4, нужно найти сумму элементов побочной диагонали...

сумма элементов матрицы по схеме - C++
Помогите пожалуйста. в программировании совсем новичок..Нужно написать программу, которая считает сумму элементов квадратной матрицы...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.01.2012, 00:47     сумма элементов матрицы #2
Цитата Сообщение от Paulsan Посмотреть сообщение
А подскажите, пожалуйста, как рассортировать элементы под главной диагональю по убыванию.
запихнуть в отдельный массив, отсортировать, затем вернуть обратно.
asm
62 / 35 / 1
Регистрация: 05.10.2011
Сообщений: 137
07.01.2012, 00:54     сумма элементов матрицы #3
Цитата Сообщение от Paulsan Посмотреть сообщение
int underdiagonal, overdiagonal;
Цитата Сообщение от Paulsan Посмотреть сообщение
float sum;
sum=overdiagonal/underdiagonal;
необходимо привести типы
C
1
sum=(float)overdiagonal/(float)underdiagonal;
или
C
1
int sum; // неудачный вариант
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
07.01.2012, 00:58  [ТС]     сумма элементов матрицы #4
Цитата Сообщение от OstapBender Посмотреть сообщение
запихнуть в отдельный массив, отсортировать, затем вернуть обратно.
А можно поподробней что именно и куда пихать? )
asm
62 / 35 / 1
Регистрация: 05.10.2011
Сообщений: 137
07.01.2012, 01:13     сумма элементов матрицы #5
считаешь сколько элементов под диагональю, например, так
C
1
2
3
4
5
6
7
long size_arr=0; 
for (i=0; i<n; i++){
   for (j=0; j<n; j++){
      if (i>j){
         underdiagonal += A[i][j];
         size_arr++;
      }...
выделяешь память под новые элементы, потом копируешь что под гл.диаг. в выделенный участок памяти, потом
Цитата Сообщение от OstapBender Посмотреть сообщение
отсортировать, затем вернуть обратно
Добавлено через 3 минуты
и не забывай очищать память от
Цитата Сообщение от Paulsan Посмотреть сообщение
int **A = new int* [n];
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
07.01.2012, 10:54  [ТС]     сумма элементов матрицы #6
Спасибо, буду пытаться ))

Добавлено через 9 часов 35 минут
Разобрался, только по программе у меня возник вопрос, почему-то матрица заполняется одними и теми же числами, как это можно подправить?
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
07.01.2012, 11:27     сумма элементов матрицы #7
Использовать функцию srand для засева случайных чисел, например вот так srand( time( NULL )). Нужно использовать всего один раз, перед использованием функции rand.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2012, 11:46     сумма элементов матрицы
Еще ссылки по теме:

сумма всех элементов матрицы - C++
С клавиатуры вводится размерность целочисленной матрицы,затем сама матрица.Найти сумму всех элементов.Разрешается при этом использовать...

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

Сумма элементов главной диагонали матрицы - C++
В двумерном массиве найти сумму элементов главной диагонали?

Сумма элементов главной диагонали матрицы - C++
Такая проблема... Можете помочь с кодом. Как сделать что-бы считало элементы главной диагонали квадратной матрицы? #include&lt;iostream&gt;...

Сумма элементов выше побочной диагонали матрицы - C++
Ребят такая проблема. Надо найти сумму всех элементов выше побочной диагонали квадратной матрицы,вот код,помогите пожалуйста. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
07.01.2012, 11:46  [ТС]     сумма элементов матрицы #8
Цитата Сообщение от Toshkarik Посмотреть сообщение
Использовать функцию srand для засева случайных чисел, например вот так srand( time( NULL )). Нужно использовать всего один раз, перед использованием функции rand.
Спасибо! всё получилось. ))
Yandex
Объявления
07.01.2012, 11:46     сумма элементов матрицы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru