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

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

Войти
Регистрация
Восстановить пароль
 
Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
#1

Результат функции зависит от ёё расположения в коде О_о - C++

04.09.2013, 17:51. Просмотров 308. Ответов 2
Метки нет (Все метки)

Подскажите студенту пожалуйста в чём у меня косяк (ну кроме ДНК ):

Функция по разному реагирует на расположение в коде .

При вызове функции Bubbles (а точнее очередности вызова параметра Min и Max) расчет верен если ( 1->Max 2->Min ) и
не верен если (1->Min 2->Max):

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
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
56
57
58
 
#include <iostream>
#include <Windows.h>
using namespace std;
 
int Min (int a, int b)
{
    return a>b;
}
 
int Max (int a, int b)
{
    return a<b;
}
 
void Bubbles(int *d,int n, int (*comp)(int,int))
{int buf=NULL;
    for(int i=1;i<n-1;i++)
    {
       for(int j=0;j<n-i;j++)
               {
                  if (comp ((*(d+j)),(*(d+(j+1)))))
                  {
                     buf=(*(d+j));
                     *(d+j)=(*(d+(j+1)));
                     *(d+(j+1))=buf;
                  }
 
               }  
    }
    
}
 
 
 
void main()
{
    int array_0[]={32,23,2,4,3,2,34,32,2,31,32,43,1221,43,2};
      
    Bubbles(array_0,sizeof(array_0)/sizeof(int),Max);
 
    for (int i=0;i<sizeof(array_0)/sizeof(int);i++)
    {
        cout<<array_0[i]<<"  ";
    }
    cout<<endl; 
    
    Bubbles(array_0,sizeof(array_0)/sizeof(int),Min);
 
    for (int i=0;i<sizeof(array_0)/sizeof(int);i++)
    {
        cout<<array_0[i]<<"  ";
    }
    cout<<endl;
    
   system("pause");
 
}
Добавлено через 39 минут
Немного переделал код но результат тот же.

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
31
32
33
34
35
36
#include <iostream>
#include <Windows.h>
using namespace std;
 
int Min (int a, int b)
{
    return a>b;
}
 
int Max (int a, int b)
{
    return a<b;
}
 
void Bubbles(int *d,int n, int (*comp)(int,int))
{/*int buf=NULL;*/
    for(int i=1;i<n-1;i++)
    {
       for(int j=0;j<n-i;j++)
               {
                  if (comp ((*(d+j)),(*(d+(j+1)))))
                  {
                     /*buf=(*(d+j));
                     *(d+j)=(*(d+(j+1)));
                     *(d+(j+1))=buf;*/
 
                      *(d+j)=(*(d+j))+(*(d+(j+1)));
                      *(d+(j+1))=(*(d+j))-(*(d+(j+1)));
                      *(d+j)=(*(d+j))-(*(d+(j+1)));
 
                  }
 
               }  
    }
    
}
 Комментарий модератора 
Языки программирования не путаем!..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 17:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Результат функции зависит от ёё расположения в коде О_о (C++):

Написать программу, проверяющую корректность расположения continue в коде - C++
Написать программу, определяющую корректность расположения в коде программы операторов continue

Запуск функции О_о - C++
есть функция void Account::Save (FILE *f) { int nlen = strlen (card_holder); fprintf (f, &quot;%d %s %c%c%c %c%c/%c%c %d\r\n&quot;, sum,...

Найти значение функции A, которая зависит от трёх переменных - C++
Нужно создать программу для вычисления функции A, которая зависит от трёх переменных x, y, z. Ввод значения переменных сделать с...

Зависит ли результат вычисления от расстановки скобок - C#
У меня случился вот такой казус: string Symbol = &quot;RRRRRR&quot;; Int32 i = buffer.Length - (Symbol.Length + 1);//при таком раскладе сумма...

Результат в третьей ячейке зависит от выбора в первых двух - VBA
Привет, форум! Помогите разобраться в следующем затыке. Создается новая книга.В этой книге пользователь выбирает в одной из ячейке...

Разный результат вычисления в коде переписанном с JavaScript на C# - C#
Всем привет. Пытаюсь перенести скрипт из JS в C# но столкнулся с проблемой. Формулы одни, а результат расчетов разный.. :wall: ...

2
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.09.2013, 19:09 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Bubbles(int* d,int n, int (*comp)(int,int))
{
    for(int i = 0; i < n; ++i)
    {
       for(int j = 0; j < n - i - 1; ++j)
       {
           if (comp(*(d + j), *(d + j + 1)))
           {
               int buf = *(d + j);
               *(d + j) = *(d + j + 1);
               *(d + j + 1) = buf;
           }
       }
    }
}
Добавлено через 15 секунд
и да, ваш код на с++, а не на си
1
Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
05.09.2013, 18:40  [ТС] #3
Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 18:40
Привет! Вот еще темы с ответами:

Правильный результат при неправильном коде. Как? - C#
Даны натуральные числа m и n. Получить все натуральные числа, меньшие n, квадрат суммы цифр которых равен m. Вопрос в том, почему...

Нужно получить результат, не используя в коде Select - VBA
Добрый день! Подскажите, пожалуйста, как выйти из подобной ситуации. Нужно получить результат, не используя .Select dim funFindCell as...

Не могу разобраться в коде. Некорректный результат работы программы - C++
Ввести с клавиатуры числа x, E . Последовательность a,a....a образована по закону a=3+ (1/(3^n))*sin(a-x)). Найти первый член, для которого...

Записать результат сложения чисел А 10 Д 10 а Г 10 в натуральном коде в 12-разрядной сетке - Информатика
Записать результат сложения чисел А 10 Д 10 а Г 10 в натуральном коде в 12-разрядной сетке. Результат сложения будет 385 в двоичной...


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

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

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