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

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

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

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

13.10.2010, 22:52. Просмотров 393. Ответов 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;
написала этот кусок потому что вот эту часть не получается правильно переписать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2010, 22:52     Не получается обнаружить ошибку(метод Шелла)
Посмотрите здесь:
C++ Задача по структурам, обнаружить ошибку
Помогите обнаружить ошибку в программе! C++
Не могу обнаружить ошибку в учебной программе из книги (шаблоны классов) C++
Не получается с сортировкой Шелла на С++ C++
Метод Шелла C++
C++ Метод Шелла
C++ Метод Шелла
C++ Метод Шелла
C++ Метод Шелла
C++ Сортировка, метод шелла
C++ Метод сортировки Шелла
Метод Шелла, алгоритм обмена C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.10.2010, 13:00     Не получается обнаружить ошибку(метод Шелла) #2
C
1
2
3
    for(k=1;k<=p;k++)
        {
                h=mas[k];
индексация с нуля

C
1
2
3
4
    int mas[] = { 2, 1};
 
    for (k = 0; k < p; k++) {
        h = mas[k];
Добавлено через 4 минуты
C
1
const int SIZE = 8;
C
1
t=arr[i];
а где t создаётся ?

Добавлено через 4 минуты
wiki. сортировка Шелла. примеры
sever1313
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 61
15.10.2010, 00:31  [ТС]     Не получается обнаружить ошибку(метод Шелла) #3
пропустила строчку int t
Исправила,но всё по прежнему не работает((

Добавлено через 6 часов 10 минут
всё нашла ошибку,спасибо.
Ответ Создать тему
Опции темы

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