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

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

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

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

07.01.2012, 00:44. Просмотров 829. Ответов 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 минуты
Разобрался. А подскажите, пожалуйста, как рассортировать элементы под главной диагональю по убыванию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2012, 00:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос сумма элементов матрицы (C++):

Максимальная сумма элементов строки / минимальная сумма элементов столбца матрицы - C++
дан двумерный массив. Найти: а)максимальную сумму элементов строки б) минимальную сумму элементов столбца нужна помощь не знаю что...

Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции) - C++
Удалить из матрицы А (7х5) все строки, сумма элементов которых четна, а из матрицы В (6х8) – строки, сумма элементов которых нечетна.

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

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

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

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

7
OstapBender
583 / 522 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.01.2012, 00:47 #2
Цитата Сообщение от Paulsan Посмотреть сообщение
А подскажите, пожалуйста, как рассортировать элементы под главной диагональю по убыванию.
запихнуть в отдельный массив, отсортировать, затем вернуть обратно.
0
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; // неудачный вариант
1
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
07.01.2012, 00:58  [ТС] #4
Цитата Сообщение от OstapBender Посмотреть сообщение
запихнуть в отдельный массив, отсортировать, затем вернуть обратно.
А можно поподробней что именно и куда пихать? )
0
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];
1
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
07.01.2012, 10:54  [ТС] #6
Спасибо, буду пытаться ))

Добавлено через 9 часов 35 минут
Разобрался, только по программе у меня возник вопрос, почему-то матрица заполняется одними и теми же числами, как это можно подправить?
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
07.01.2012, 11:27 #7
Использовать функцию srand для засева случайных чисел, например вот так srand( time( NULL )). Нужно использовать всего один раз, перед использованием функции rand.
1
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
07.01.2012, 11:46  [ТС] #8
Цитата Сообщение от Toshkarik Посмотреть сообщение
Использовать функцию srand для засева случайных чисел, например вот так srand( time( NULL )). Нужно использовать всего один раз, перед использованием функции rand.
Спасибо! всё получилось. ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2012, 11:46
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
07.01.2012, 11:46
Ответ Создать тему
Опции темы

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