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

Нахождение суммы главной диагонали матрицы - C++

Восстановить пароль Регистрация
 
Blurryface
0 / 0 / 0
Регистрация: 04.05.2016
Сообщений: 16
06.05.2016, 10:40     Нахождение суммы главной диагонали матрицы #1
Написал функцию нахождения суммы главной диагонали матрицы с использованием указателей, а она работает неправильно. Все уже перепробовал, но все равно считает неверно. Посмотрите, пожалуйста, мой код и подскажите, что не так
C++
1
2
3
4
5
6
7
int func(int *array, int n)
{
    int i, sum = *array;
    for (i = 0; i != n; i++)
        sum = sum + (*(array + i*n + i));
    return sum;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2016, 10:40     Нахождение суммы главной диагонали матрицы
Посмотрите здесь:

C++ Разместить на главной диагонали матрицы суммы элементов, лежщих на диагоналях, перпендикулярных к главной
Вычисление суммы и произведения элементов матрицы, находящихся на главной диагонали C++
C++ Вычисление суммы элементов главной диагонали матрицы
C++ Функция вычисления суммы элементов квадратной матрицы, которые расположены ниже главной диагонали
C++ Нахождение разницы элементов главной диагонали и третьего столбца матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dcshowcousa
25 / 17 / 48
Регистрация: 22.10.2015
Сообщений: 303
06.05.2016, 10:53     Нахождение суммы главной диагонали матрицы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Blurryface,
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
#include<iostream>
int func(int *array, int n)
{
    int sum = 0;
    for (int i = 0; i < n; i++)
        sum += (*(array + i*n + i));
    return sum;
}
int main()
{
    int n = 5;
    int *Ar = new int[n*n];
    for (int i = 0; i < n*n; i++)
    {
        Ar[i] = rand() % 10;
        std::cout << Ar[i] << " ";
        if ((i +1) % n == 0)
            std::cout << std::endl;
    }
    std::cout << func(Ar, n);
    system("pause");
    delete[] Ar;
    return 0;
}
Blurryface
0 / 0 / 0
Регистрация: 04.05.2016
Сообщений: 16
06.05.2016, 10:56  [ТС]     Нахождение суммы главной диагонали матрицы #3
dcshowcousa, Спасибо большое!
Petrolion
24 / 24 / 7
Регистрация: 02.02.2016
Сообщений: 124
06.05.2016, 11:29     Нахождение суммы главной диагонали матрицы #4
Blurryface, в вашей функции всего одна ошибка. Если инициализируете sum = *array; (нулевым элементом), то цикл надо начинать не с него а с единицы for (i = 1; i != n; i++)
Yandex
Объявления
06.05.2016, 11:29     Нахождение суммы главной диагонали матрицы
Ответ Создать тему
Опции темы

Текущее время: 22:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru