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

Не получается обнаружить ошибку(метод Шелла) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Утечка памяти в работе с классами http://www.cyberforum.ru/cpp-beginners/thread176158.html
вроде утечка памяти наблюдается в функции "loadfromfile", помогите пожалуйста исправить #include "stdafx.h" #include <windows.h> #include <stdlib.h> #include <iostream> using namespace std;
C++ Ввести имена и телефоны сотрудников организации в массив записей и вывести их в виде таблицы. Запись содержит несколько компонентов, или полей, которые могут иметь различные типы. Синтаксис: Record Поля; Поля; ... Поля End; Замечания: http://www.cyberforum.ru/cpp-beginners/thread176156.html
C++ одномерные массивы
Помогите, пожалуйста, сделать задание, ну хотя бы намекните! В одномерном массиве, который состоит из n действительных чисел, найти сумму элементов между первым и последним нулевыми элементами. В одновимерном масиве каторий складаетса из n дейсних чисел знайти: сума елементов масива между первим и останним нульовим елементом. Официальный язык форума - русский!
Дан класс C++
Дан класс(Myclass).Добавть дружественную функцию,которая получит один параметр типа myclass и возвращает значение true,если параметр отрицательный, и false в противном случае class Myclass{ int num; public:: myclass(int x){ num=x } }
C++ Встраеваемые функции http://www.cyberforum.ru/cpp-beginners/thread176144.html
Написать программу определения max и min числа,используя встраеваемые функции.Продемонстрировать работу функции
C++ Создать класс Employee, содержащий следующие элементы: Создать класс Employee, содержащий следующие элементы: - поле «ФИО» char* FIO; - поле «Табельный номер» int Number; - поле «Возраст» int Age; - поле «Стаж» int Stage; - метод получения ФИО char* GetFIO(); - метод получения таб. номера int GetNumber(); - метод получения стажа int GetStage(); - метод получения возраста int GetAge(); - конструктор с параметрами Employee(char* FIO, int... подробнее

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

Не получается обнаружить ошибку(метод Шелла) - C++

13.10.2010, 22:52. Просмотров 385. Ответов 2
Метки (Все метки)

Проблема в том что я написала программу на паскале,а преподаватель попросил перевести на си,и теперь не могу понять где эта ошибка,выводит не тот результат,я даже по шагово проделывала,где то сбивается(.Будьте добры помогите разобраться.
Задача такая массив отсортировать методом шелла,с шагом h1=1,h2=2


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
 const int size=7;
int main()
{
    setlocale(LC_ALL, "rus");
    static char arr[] = {'И','В','А','Н','К','О','В','А'};
    int p=2;
    int h;
    int mas[]={0,2,1};
    int i,k,m,j;
    for(k=1;k<=p;k++)
    {
        h=mas[k];
 
        for(i=h+1;i<=size;i++)
        {
            t=arr[i];
            j=i-h;
              while((j<size)&&(t<arr[j]))
              {
                   arr[j+h]= arr[j];              
                   j=j-h;
 
                          } 
                arr[j+h]=t;
            }
            
        
    }
            
    for (m=0; m<size; m++)
     {
        cout <<"   "<< arr[m] ;
     }
     getch();
}
вот код с паскаля
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
h[1]:=2; h[2]:=1;
 for m := 1 to t do
begin
  k:=h[m];     
  for i := k+1 to n do
begin
  x := as[i];         
  j := i-k;
 while (x<as[j]) and (j<n) do 
begin                         
  as[j+k] := as[j];             
  j := j-k;
end;                           
    as[j+k] := x;
написала этот кусок потому что вот эту часть не получается правильно переписать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru