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

Сортировка двоичной вставкой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вот код, подскажите как исправить ошибку, пожалуйста??? http://www.cyberforum.ru/cpp-beginners/thread518373.html
Вот вибивает такие ошибки: 1>c:\users\user\desktop\ооп 6\ооп 6\ооп6.cpp(40) : error C2661: D3:: D3: нет перегруженной функции, принимающей 2 аргументов 1>c:\users\user\desktop\ооп 6\ооп 6\ооп6.cpp(48) : error C2661: D3:: D3: нет перегруженной функции, принимающей 2 аргументов Не знаю как их исправить...((( очень нужно... плиииииз #include "iostream" #include <stdlib.h> #include<conio.h> ...
C++ Работа со звуком Интересует работа со звуком. Какие вообще существуют библиотеки для работы с ним. Никогда с этим не имел дела, может быть что-то подскажите? http://www.cyberforum.ru/cpp-beginners/thread518369.html
Назад в прошлое, графика под DOS. [graphics.h] part 2 C++
Есть солнышко., странное правда. По центру круг, вокруг круга N кружочков, так чтобы они были окружали весь главный круг. надо их заставить двигаться вокруг центрального круга. Но чтобы это сделать, надо кружки вокруг цента вывести циклом. Вопрос как вывести кружки по кругу, вокруг центрального круга и заставить двигаться? двигаться то будут, но как вокруг вывести циклом кружки - не...
Динамический масив C++
Здравствуйте. Задание Переписать в динамический масив числа отрицательные не кратные 3м. Проблема Выводит мусор и и создаёт ненужное кол-во ячеек динам масива. Скрин #include <stdio.h>
C++ char to int не могу не как конвертировать http://www.cyberforum.ru/cpp-beginners/thread518356.html
читаю из файла в массив char'ов соответственно есь массив из четырех элементов в каторых записан один int, вот как это кампу объяснить пример грубо char* pFile;// сюда зачитан фаил где со второго байта начинаеться int int rez; memcpy(&rez,&pFile,4); мемкоплю char в char все норм, как только пробую в int не то пальто.
C++ использование массива из функции в другой функции как использовать полученный массив в другой функции. к примеру в функции int Mass(char *fname) происходит конвертация одномерного массива в двумерный. получается массив n1, потом мне нужно использовать этот массив в main как его туда передать? подробнее

Показать сообщение отдельно
AntiDriver
0 / 0 / 0
Регистрация: 05.06.2010
Сообщений: 17

Сортировка двоичной вставкой - C++

14.03.2012, 01:26. Просмотров 1062. Ответов 2
Метки (Все метки)

Доброе время суток. Есть программа на pascal, выполняющая сортировку массива по убыванию, нужно переписать на с++.
Программа на паскале работает правильно, вывод же программы переписанной на си оставляет желать лучшего: несколько раз выводится одно и то же выражение, сортировки как таковой не происходит, первый элемент (под номером ноль) остаётся нетронутым. В чём ошибка, не пойму.
Pascal
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
CONST
   n=10;
VAR
   k: integer;
   mass: array [1..n] of real;
 
Procedure InitMass;
Var
   i:integer;
Begin
   for i:=1 to n do mass[i]:=10*sin(0.3*i+0.24);
End;
 
Procedure Bin_Ins;
Var
  i,j,m,l,r: integer;
  x: real;
Begin
  for i:=2 to n do begin
                      x:=mass[i];
                      l:=1; r:=i;
                      while l<r do begin
                                      m:=(l+r) div 2;
                                      if mass[m]>=x then l:=m+1 else r:=m;
                                   end;
                      for j:=i downto r+1 do mass[j]:=mass[j-1];
                      mass[r]:=x;
                   end;
End;
 
BEGIN
   InitMass;
   for k:=1 to n do writeln(mass[k]:5:5);
   WriteLn('***********************************************************');
   Bin_Ins;
   for k:=1 to n do writeln(mass[k]:5:5);
END.
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
#include <iostream.h>
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <math.h>
#define n 100
 
int ass, compr, k;
int mass[n];
 
void input(void)
{
     int i;
     for (i=0; i<n; i++)
     {
         mass[i]=100+100*sin(i);
     }
}
 
void output(void)
{
     int i;
     for (i=0; i<n; i++)
     {
         cout << mass[i] << " ";
     }
     cout << "\n";
}
 
 
void dv(void)
{
    int i,j,m,l,r,x;
    for (i=2; i<n; i++)
    {
        x=mass[i];
        l=1; r=i;
        while (l<r)
        {
            m=(l+r)/2;
            if (mass[m]>=x) l=m+1;
            else r=m;
        }
        //for j:=i downto r+1 do mass[j]:=mass[j-1]; ????
        for (j=i; j>(r+1); j--) mass[j]=mass[j-1];
        mass[r]=x;
     }
}
 
 
int main(void)
{
    input();
    output();
    dv();
    output();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru