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

Отсортировать массив методом вставки - C++

Восстановить пароль Регистрация
 
vasa415
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 13
04.09.2013, 16:41     Отсортировать массив методом вставки #1
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <conio.h>
#include <iostream.h>
#include <math.h>
main()
// oboznacheniya peremennih
{ int   n,//kolichestvo elementov ishodnogo massiva
        m,//kolichestvo elementov massiva znacheniy otricatelnih elemetov po modulyu
        o,//kolichestvo otricatelnih elementov massiva kratnih 3 i 7
        s,//Summa polozhitelnih elementov kratnih 2
        i,//indeks ishodnogo massiva
        j,//indeks massiva znacheniya otricatelnih elemetov
        x,//indeks dlya massiva sortirovky
        k,//vremeniy element dlya otsortirovanogo massiva
        mod,//naimenshiy po modulyu otricatelniy element
        p,//indeks posledovatelnosti
        temp;
  int *a;// ishodniy massiv
  int *temp_a;// massiv znacheniy otricatelnih elemetov
  clrscr();
 
 //formirovanue ishodnogo massiva
    cout<<"vvedite kolichestvo elementov massiva: ";
    cin>>n;
    cout<<"vvedite element p: ";
    cin>>p;
    a=new int[n];
    if (n>=p>=1)
    cout<<"vvedite "<<n<<"elementov massiva: "<<endl;
    for(i=0;i<n;i++) cin>>a[i];
    clrscr();
    cout<<"p="<<p<<endl;
    cout<<"n="<<n<<endl;
    cout<<"ishodniy massiv:"<<endl;
    for(i=0;i<n;i++) cout<<"a["<<i<<"]="<<a[i]<<"  "<<endl;
 
 
    //Kolichestvo otricatelnih elementov 
    //posledovatelnosti a,a1..an
    //kratnih 3 i 7
    o=0;
    for(i=0;i<n;i++)
    if(a[i]<0 && a[i]%3==0 && a[i]%7==0)
    o+=1;
    cout<<"Kolichestvo otricatelnih elementov posledovatelnosti a,a1..an, kratnih 3 i 7= " <<o<<endl;
 
 
    //Summa polozhitelnih elementov
    //posledovatelnosti a,a1..an
    //kratnih 2
    
    s=0;
    for(i=p; i<=n;i++)
    if(a[i]>0 && a[i]%2==0)
    s+=a[i];
    cout<<"Summa polozhitelnih elementov posledovatelnosti a,a1..an kratnih 2 =" <<s<<endl;
 
 
    //znachenie naimensheego  po modulyu otricatelnogo chlena
    //posledovatelnosti ap,ap+2..an
 
    /* nahodim kolichhestvo otricatelnih elementov v ishodnom massive*/
    temp_a=new int(m);
    m=0;
    for(i=p; i<n; i+=2)
    if(a[i]<0) m++;
 
    /*sozdayom massiv is moduley otricatelnih elementov ishodnogo massiva*/
    for (i=p,j=0;i<n,j<m;i+=2)
    if(a[i]<0 && a[i]!=0)
    temp_a[j]=fabs(a[i]), j++;
 
   /*nahodim naimenshiy  po modulyu otricatelniy chlen*/
    mod=temp_a[0];
    for (j=1;j<m;j++)
    if(mod>temp_a[j])
    mod=temp_a[j];
    if(mod>0)
    cout<<"naimenshiy  po modulyu otricatelniy chlen, posledovatelnosti ap,ap+2..an="<<mod<<endl;
    else cout<<"otricatelnie chleni, posledovatelnosti ap,ap+2..an otsutstvuyut"<<endl;
 
   //sortirovka massiva metodom vstavki po vozrostaniyu
   
    for(i=1; i<n; i++)
    k=a[i];
    x=i-1;
    while (x>=0 && a[x]>k)
    a[i]=a[x];
    a[x]=k;
    x--;
    
    
    for(i=0;i<n;i++) cout<<"a["<<i<<"]="<<a[i]<<"  "<<endl;
    
    return 0;
    }
Добавлено через 32 секунды
Почему не сортирует, помогите найти ошибку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 16:41     Отсортировать массив методом вставки
Посмотрите здесь:

отсортировать массив методом Шелла C++
Отсортировать массив методом Шелла C++
Отсортировать массив чисел методом пузырька C++
C++ Отсортировать столбцы матрицы методом вставки
C++ Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки
Отсортировать массив методом выбора C++
C++ Отсортировать массив методом минимального элемента и методом пузырька
C++ Отсортировать массив по убыванию методом пузырька

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru