Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Rodionusa
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 13
#1

Ребята, объясните пожалуйста каждую строку этой программы

14.05.2015, 13:22. Просмотров 868. Ответов 10
Метки нет (Все метки)

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 <stdlib.h>
using namespace std;
int main();
 
 
 
const int* arr_mmin(const int* f, const int* l){
    int i, n = abs(*f);
    const int* p = f++;
 
    for(; f != l; ++f){
        if((i = abs(*f)) < n){
            n = i;
            p = f;
        }
    }
    return p;
}
 
int main(void){
    int arr[] = { 1, 2, 3, -8, -2, 10, 4, 9 };
    int num   = sizeof(arr)/sizeof(arr[0]);
 
    const int* pm = arr_mmin(arr, arr + num);
    cout << "Minimalniy element po modulu: " << *pm << endl;
 
 
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2015, 13:22
Ответы с готовыми решениями:

Ребята, объясните пожалуйста эту рекурсию!
Ребята, ну хоть убейся не могу понять эту рекурсивную фунцию для задачи с...

Ребята! Пожалуйста, объясните что делает данная программа?
#include &quot;stdafx.h&quot; #include&lt;fstream&gt; #include &quot;defs.h&quot; #define S 0 ...

Объясните строку, пожалуйста)
Условия задачи: Даны две строки, сформировать третью из символов, встречающихся...

Объясните пожалуйста одну строку в коде
Объясните пожалуйста . #include &lt;iostream&gt; #include &lt;cstring&gt; using...

Объясните, пожалуйста, действия программы
#include &lt;stdio.h&gt; #include&lt;string&gt; #include&lt;map&gt; #include &lt;stdlib.h&gt;...

10
Черный мечник
48 / 49 / 34
Регистрация: 29.12.2012
Сообщений: 445
14.05.2015, 13:27 #2
Тут два мейна
0
Rodionusa
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 13
14.05.2015, 13:31  [ТС] #3
да она работает нормально, это я поставил, мне нужно объяснить преподу программу, он может спросить любую строчку из неё и спросить для чего она нужна...
0
Черный мечник
48 / 49 / 34
Регистрация: 29.12.2012
Сообщений: 445
14.05.2015, 13:32 #4
понятно

Добавлено через 1 минуту
Написана крайне плохо
0
akaAxeL
66 / 66 / 59
Регистрация: 14.07.2013
Сообщений: 251
14.05.2015, 13:37 #5
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>//подключение библиотеки ввод/вывод потоки например cout
#include <stdlib.h>//стандартная библиотека С
using namespace std;// использовать пространство имен std, не надо будет писать std::cout 
int main();//это явно лишнее
 
 
 
const int* arr_mmin(const int* f, const int* l){ //функция поиска мин числа по модулю
int i, n = abs(*f);
const int* p = f++;
 
for(; f != l; ++f){
if((i = abs(*f)) < n){//сравнивается элемент текущего шага с предыдущим, если меньше то запомнить, если больше или равен то дальше
n = i;
p = f;
}
}
return p; 
}
 
int main(void){
int arr[] = { 1, 2, 3, -8, -2, 10, 4, 9 };
int num = sizeof(arr)/sizeof(arr[0]);
 
const int* pm = arr_mmin(arr, arr + num); присваиваем pm результат функции 
cout << "Minimalniy element po modulu: " << *pm << endl; //выводим на консоль
 
 
return 0;
}
1
Черный мечник
48 / 49 / 34
Регистрация: 29.12.2012
Сообщений: 445
14.05.2015, 13:37 #6
C++
1
2
3
....
 delete pm;  //освобожать память надо
return 0;
0
Rodionusa
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 13
14.05.2015, 13:42  [ТС] #7
Спасибо))

int main(void){ а это что?


int num = sizeof(arr)/sizeof(arr[0]);


и return p; плиииз)
0
Eva Rosalene
T for Trans-
4050 / 1589 / 303
Регистрация: 06.01.2013
Сообщений: 4,179
Завершенные тесты: 2
14.05.2015, 13:46 #8
Черный мечник, не вводите в заблуждение. Не нужен там delete pm.
0
akaAxeL
66 / 66 / 59
Регистрация: 14.07.2013
Сообщений: 251
14.05.2015, 13:51 #9
Лучший ответ Сообщение было отмечено Rodionusa как решение

Решение

delete pm; не надо он же не через new создает. delete вызовет ошибку

Добавлено через 4 минуты
C++
1
2
3
4
5
int main(void){//основная функция все программы С++ начинаются с этой функции
и return p; // возвращаемое значение функции по вычислению мин числа по модулю именно это р присваивается в фунции main pm'у
 
 
int num = sizeof(arr)/sizeof(arr[0]); //число элементов в массиве, размер массива в единацах памяти делится на размер одного элемента также в единицах памяти
0
Rodionusa
0 / 0 / 0
Регистрация: 11.05.2015
Сообщений: 13
15.05.2015, 02:59  [ТС] #10
Объясните плиз эти строчки.

int i, n = abs(*f);
const int* p = f++;

for(; f != l; ++f){
0
akaAxeL
66 / 66 / 59
Регистрация: 14.07.2013
Сообщений: 251
15.05.2015, 10:12 #11
C++
1
2
3
4
int i, n = abs(*f);//объявление переменной i, и  объявление и инициализация n, которой присваивается значение по модулю первого элемента массива f
const int* p = f++;//лучше без const она же потом меняется. второй элемент массива f
 
for(; f != l; ++f){//цикл
0
15.05.2015, 10:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2015, 10:12

Объясните пожалуйста. Нюансы программы с рекурсией
Добрый день. Просьба, объясните пару нюансов программы. всё работает, но не...

Объясните пожалуйста ход работы программы
Дан код #include&lt;iostream&gt; #include&lt;windows.h&gt; using namespace std;...

Объясните пожалуйста результат работы программы
#include &lt;iostream&gt; using namespace std; int main() { short int i; ...


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

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

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