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

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

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

Составить функцию вычисления суммы элементов выше диагонали - C++

11.09.2012, 00:13. Просмотров 604. Ответов 3
Метки нет (Все метки)

Задание:
Кликните здесь для просмотра всего текста

Составить функцию вычисления суммы S положительных элементов матрицы, лежащие выше некоторой диагонали, параллельной главной диагонали. Используя эту функцию, в матрице K(5,5) вычислить произведение суммы S элементов, лежащих выше диагонали А (см рисунок) на сумму S элементов лежащих выше диагонали B, а в матрице T(6,6)- сумму S элементов, лежащих выше диагонали C:

матрица K:
_________* A * * *______________матрица T:* * * * * *
_________* * A * *_______________________C * * * * *
_________B * * A *_______________________* C * * * *
_________* B * * A_______________________* * C * * *
_________* * B * *_______________________* * * C * *
_______________________________________ * * * * C *

мое решение:
Кликните здесь для просмотра всего текста
C++ (Qt)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
// ---------------------------
void vvod(int[][6], int);
int sm(int[][6], int, int, int, int);
// ---------------------------
int k[5][5], t[6][6];
// --------------------------
void vvod(int f[][6], int n)
{
    srand(time(0));
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
        //  cin>> f[i][j];
            f[i][j]=10+rand()%50;
}
 
// -------------------------
int sm(int f[][6], int n, int m, int x, int y)
{
    int s = 0;
    for (int i = x, p=0; i < n; i++, p++)
        for (int j = y, r=0; j < m; j++,r++)
            if ((p <= r) && (f[i][j] > 0))
                s=s+f[i][j];
    return s;
}
 
// ----------------------------
main()
{
    int i, j, smt, smk;
    vvod(k,5);
    vvod(t,6);
    cout << "Matrica K(5,5):" << endl;
    for (i = 0; i < 5; i++)
    {
        cout << endl << endl;
        for (j = 0; j < 5; j++)
            cout << "     " << k[i][j] << " (" << i << "," << j << ")   |";
    }
    cout << endl << endl;
    cout << "Matrica T(6,6):" << endl;
    for (i = 0; i < 6; i++)
    {
        cout << endl << endl;
        for (j = 0; j < 6; j++)
            cout << "     " << t[i][j] << " (" << i << "," << j << ")   |";
    }
    cout << endl << endl;
    smt = sm(t, 5, 5, 0, 0);
    smk = sm(k, 2, 4, 0, 2) * sm(k, 4, 3, 1, 1);
    cout << "smt=" << smt;
}


компилятор ругается на vvod(k,5); и smk = sm(k, 2, 4, 0, 2) * sm(k, 4, 3, 1, 1);

ошибки:

Кликните здесь для просмотра всего текста
cannot convert `int (*)[5]' to `int (*)[6]' for argument `1' to `void vvod(int (*)[6], int)'
cannot convert `int (*)[5]' to `int (*)[6]' for argument `1' to `int sm(int (*)[6], int, int, int, int)'
cannot convert `int (*)[5]' to `int (*)[6]' for argument `1' to `int sm(int (*)[6], int, int, int, int)'


ваши предложения?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2012, 00:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить функцию вычисления суммы элементов выше диагонали (C++):

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

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

[Функции] Работа с матрицей (организовать функцию для вычисления суммы положительных элементов, размещенных на побочной диагонали) - C++
Господа не прошло и получаса, а мне вновь нужна помощь портала. Задача: Составить программу, в которой создать динамический массив...

Написать функцию для вычисления суммы элементов n квадратных матриц, которые расположены ниже главной диагонали. - C++
Вместо n взял две матрицы. Ошибка в 47-й и 49-й строках. Как правильно передать квадратную матрицу в функцию? #include...

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

Определить: сумма элементов выше главной диагонали меньше суммы элементов ниже главной диагонали? - C++
Дана квадратная матрица натуральных чисел,( получаемая через rand()) .Определить, верно ли утверждение: сумма эллементов выше главной...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.09.2012, 01:00 #2
так
C++
1
void vvod(int (*f)[6], int n)
или так
C++
1
2
template <typename T>
void vvod(T& f, int n)
А посоветую использовать std::array (для статических массивов)
0
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
11.09.2012, 01:02 #3
C++
1
2
3
4
5
6
7
int **k, **t;
    k = new int*[5];
    for(int i = 0; i < 5; ++i)
      k[i] = new int[5];
    t = new int*[6];
    for(int i = 0; i < 6; ++i)
      t[i] = new int[6];
Аргументы ф-ций поменять на int** f
Не забыть удалить выделенную память в конце.
0
artyrka94
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 15
11.09.2012, 14:49  [ТС] #4
спасибо за ответы! но если можно вставьте их в мой код, что бы я видел как правильно использовать. Просто я только начал изучать С++.. Заранее спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2012, 14:49
Привет! Вот еще темы с ответами:

Как реализовать условие по нахождению суммы элементов выше главной диагонали? - C++
Как реализовать условие по нахождению суммы элементов выше главной диагонали, если наибольший элемент выше главной диагонали, иначе найти...

Составить функцию вычисления суммы с точностью эпсилон - C++
Даны действительные числа x, эпсилон(x не равно 0, 1 больше или равно эпсилон больше 0). Составить функцию вычисления суммы с точностью...

Составить функцию для вычисления суммы(неверный счет) - C++
Так же нужно вычислить функцию y, но с ней проблем нету. А вот сумму считает не правильно. Что тут можно исправить? Прикладываю код...

Алгоритм вычисления суммы элементов на главной диагонали матрицы - C++
Дана задача вычислить сумму положительных элементов на главной диагонали матрицы. Сделал данную программу: #include &quot;stdafx.h&quot; #include...


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

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

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