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

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

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

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

29.05.2013, 13:31. Просмотров 312. Ответов 4
Метки нет (Все метки)

Ребята!

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

Сформировать массив простых чисел, не превышающих заданное натуральное число N - C++
Доброго времени суток. Помогите, пожалуйста, найти ошибку. Задание звучит вот так: &quot;Сформировать массив простых чисел, не превышающих...

Ребята обьясните пожалуйста в C++ задано целое число нужно сформировать массив ПРОСТЫХ чисел не превышающих заданное - C++
)))))

Введенное число делить на второе введенное число пока первое число не станет равным нулю - C++
Введенное число делить на второе введенное число пока первое число не станет равным int number=0; int secondNum=0; int...

Циклы: Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и не делящихся ни на одно из чисел 2, 3, 5 - C++
Завтра зачет не успеваю сделать занимаюсь prologom помогите кому не сложно!!! 1)(Циклы)Задано натуральное число n. Найти количество...

Утверждение Гольдбаха для чисел не превышающих число 100 - C++
//145. Один из первых академиков российской Академии наук(1725 гг.) математик Христиан Гольдбах(1690–1764 гг.) //выдвинул так называемую...

Напечатать все пары чисел-близнецов, не превышающих число 200 - C++
Два простых числа называются &quot;близнецами&quot;, если они отличаются друг от друга на 2 ( таковы, например числа 41 и 43). Напечатать все пары...

4
pizurok
76 / 68 / 3
Регистрация: 05.05.2013
Сообщений: 3,516
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*количество_столбцов, в итоге указатель сдвигается на нужный элемент
1
RitaMargarita
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 2
29.05.2013, 23:20 #3
ТО есть здесь складываются указатели???!
Препод даже вместо I и J подставлял числа ( 1,2..)
если подставить 1 то получится МАТРИКС плюс 2, а какое значение у МАТРИКСа тогда??!
0
pizurok
76 / 68 / 3
Регистрация: 05.05.2013
Сообщений: 3,516
30.05.2013, 03:37 #4
Нет, к указателю добавляется число, в результате получаем указатель уже на другой элемент. А складывать указатели нельзя, только добавлять число, либо вычитать указатели.
Если к указателю Matrix добавить два, то мы сдвинемся на два элемента вперед, то есть получим указатель на третий элемент, если считать что начальный элемент первый.
Если подставить числа 1 и 2, получим Matrix +1*columns + 2, это фактически указатель на элемент второй строки третьего столбца. То есть добавление 1*columns добавляет к указателю на начало количество столбцов, и сдвигает указатель на первый элемент второй строки, добавка + 2 сдвигает на третий элемент второй строки
0
alkagolik
Заблокирован
30.05.2013, 06:28 #5
Цитата Сообщение от RitaMargarita Посмотреть сообщение
Matrix + i*columns ??? ЧТО ЭТО
Комментариев кода мало?

Добавлено через 34 секунды
это
явное преобразование типов (long)(*(Matrix + i*columns + j) устанавливают местонахождения элемента массива, не используя индексов
0
30.05.2013, 06:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2013, 06:28
Привет! Вот еще темы с ответами:

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

Найти сумму элементов четных номеров массива вещественных чисел, превышающих заданное число - C++
1. Найти сумму элементов четных номеров массива вещественных чисел, превышающих 9

Из скольких различных чисел состоит введенное число. - C++
Дано натуральное число. Из которых различных чисел оно состоит. Реализовать с помощью &quot;set&quot;

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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