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

Динамический массив. Сложение чисел превышающих дополнительно введенное число - C++

Восстановить пароль Регистрация
 
RitaMargarita
Сообщений: n/a
29.05.2013, 13:31     Динамический массив. Сложение чисел превышающих дополнительно введенное число #1
Ребята!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
long* func_stat(double* Matrix , int rows , int columns, int Add_Number_a)
{
    long* array_result = new long[rows]; // выделение памяти для результирующего массива
    long summ = 0; // объявление и обнуление переменной для суммы
        for(int i=0; i< rows; i++)
    {
        for (int j=0; j< columns; j++)
        {
        
          if((long)(*(Matrix + i*columns + j )) > Add_Number_a) // явное преобразование типов (long)(*(Matrix + i*columns + j) устанавливают местонахождения элемента массива, не используя индексов
              
 
//* перед скобками - разыменование указателя поэтому он выводит именно элемент а не адрес 
 
               summ = summ + (*(Matrix +i*columns+ j)); // нахождение суммы построчно
        }
        array_result[i] = summ; 
        summ = 0;
    }
        return array_result; // возвращаем указатель на массив array_result
}

ВОТ КУСОЧЕК ПРОГРАММЫ
ТАКОЙ ВОПРОС: что происходит здесь

if((long)(*(Matrix + i*columns + j )) > Add_Number_a)
А именно препод спрашивает что с чем складывается?!?! То есть ЧТО ПРОИСХОДИТ В СКОБКАХ!
Matrix + i*columns ??? ЧТО ЭТО
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 13:31     Динамический массив. Сложение чисел превышающих дополнительно введенное число
Посмотрите здесь:

Сформировать массив С, i-ый элемент которого равен количеству элементов в i-ой строке матрицы, превышающих по модулю число 100. C++
Проверить является ли введенное число суммой двух простых чисел C++
Напечатать все пары чисел-близнецов, не превышающих число 200 C++
Циклы: Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и не делящихся ни на одно из чисел 2, 3, 5 C++
Ребята обьясните пожалуйста в C++ задано целое число нужно сформировать массив ПРОСТЫХ чисел не превышающих заданное C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pizurok
 Аватар для pizurok
53 / 67 / 3
Регистрация: 05.05.2013
Сообщений: 2,707
29.05.2013, 13:36     Динамический массив. Сложение чисел превышающих дополнительно введенное число #2
Цитата Сообщение от RitaMargarita Посмотреть сообщение
ТАКОЙ ВОПРОС: что происходит здесь[/B]
if((long)(*(Matrix + i*columns + j )) > Add_Number_a)
А именно препод спрашивает что с чем складывается?!?! То есть ЧТО ПРОИСХОДИТ В СКОБКАХ!
Matrix + i*columns ??? ЧТО ЭТО
Matrix - указатель первый элемент матрицы, Matrix + i*columns - указатель на первый элемент i-й строки в матрице. Добавляется к указателю i*количество_столбцов, в итоге указатель сдвигается на нужный элемент
RitaMargarita
Сообщений: n/a
29.05.2013, 23:20     Динамический массив. Сложение чисел превышающих дополнительно введенное число #3
ТО есть здесь складываются указатели???!
Препод даже вместо I и J подставлял числа ( 1,2..)
если подставить 1 то получится МАТРИКС плюс 2, а какое значение у МАТРИКСа тогда??!
pizurok
 Аватар для pizurok
53 / 67 / 3
Регистрация: 05.05.2013
Сообщений: 2,707
30.05.2013, 03:37     Динамический массив. Сложение чисел превышающих дополнительно введенное число #4
Нет, к указателю добавляется число, в результате получаем указатель уже на другой элемент. А складывать указатели нельзя, только добавлять число, либо вычитать указатели.
Если к указателю Matrix добавить два, то мы сдвинемся на два элемента вперед, то есть получим указатель на третий элемент, если считать что начальный элемент первый.
Если подставить числа 1 и 2, получим Matrix +1*columns + 2, это фактически указатель на элемент второй строки третьего столбца. То есть добавление 1*columns добавляет к указателю на начало количество столбцов, и сдвигает указатель на первый элемент второй строки, добавка + 2 сдвигает на третий элемент второй строки
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
30.05.2013, 06:28     Динамический массив. Сложение чисел превышающих дополнительно введенное число #5
Цитата Сообщение от RitaMargarita Посмотреть сообщение
Matrix + i*columns ??? ЧТО ЭТО
Комментариев кода мало?

Добавлено через 34 секунды
это
явное преобразование типов (long)(*(Matrix + i*columns + j) устанавливают местонахождения элемента массива, не используя индексов
Yandex
Объявления
30.05.2013, 06:28     Динамический массив. Сложение чисел превышающих дополнительно введенное число
Ответ Создать тему
Опции темы

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