Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 145
1

Одномерный массив, сортировка

13.04.2014, 18:08. Просмотров 873. Ответов 8
Метки нет (Все метки)

Вот задание. Надеюсь на помощь. Вот что у самого получилось... Что делать дальше?
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 <vcl.h>
#pragma hdrstop
#include <vcl.h>
#include <cstdlib>
#include <ctime>
#include <iostream>
 
 
 
using namespace std;
 
//---------------------------------------------------------------------------
 
#pragma argsused
void main()
{
srand(time(NULL));         //типа рандомайз в делфи
const n=10;                //размерность массива
int a[n];                  //целочисленный массив
 
for (int i=0;i<n;i++){     //заполнение массива
a[i]=rand()%99+1;
}
 
for (int i=0;i<n;i++){     //вывод массива
cout << a[i] << ' ';
}
 
cout <<endl;              //перевод строки
 
system("pause");
 
}
//---------------------------------------------------------------------------
0
Миниатюры
Одномерный массив, сортировка  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2014, 18:08
Ответы с готовыми решениями:

Одномерный массив, сортировка
Приветствую! Подскажите, как сформировать массивы X и Y в задании: Заданы...

Одномерный массив - сортировка по убыванию
написать программу, которая методом обмена сортирует по убыванию введенный с...

Одномерный массив.замна и сортировка.
В одномерном массиве, состоящем из n вещественных элементов. Заменить все...

Задача на одномерный массив (сортировка)
Помоги тебе решить задачу, пожалуйста. Дан одномерный массив из N элементов....

Одномерный массив. Вычисление произведения элементов. Сортировка.
В одномерном массиве, состоящем из n вещественных элементов, вычислить:...

8
kiborgdelto
71 / 73 / 41
Регистрация: 23.03.2011
Сообщений: 141
13.04.2014, 18:44 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
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <ctime>
#include <iostream>
using namespace std;
 
void print(int *a, int n)
{
    for (int i=0;i<n;i++)     //вывод массива
    cout << a[i] << ' ';
    cout <<endl;              //перевод строки
}
 
void bubbleSort(int* arr, int size)// пузырьком
{
    int tmp;
 
    for(int i = 0; i < size - 1; ++i) // i - номер прохода
    {            
        for(int j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {     
            if (arr[j + 1] < arr[j]) 
            {
                tmp = arr[j + 1]; 
                arr[j + 1] = arr[j]; 
                arr[j] = tmp;
            }
        }
    }
}
//---------------------------------------------------------------------------
 
 
void main()
{
setlocale(0,"");
srand(time(NULL));         //типа рандомайз в делфи
const int n1=20;                //размерность массива
int a[n1];                  //целочисленный массив
int n;
n=10;
for (int i=0;i<n;i++)    //заполнение массива
    a[i]=rand()%99+1;
 
print(a,n);// вывод массива
 
int s;// удаление элемента
do
{
    cout<<"Введите номер элемента который хотите удалить\n";
    cin>>s;
    for (int i=s-1;i<n-1;i++)
        a[i]=a[i+1];
    n--;
    cout<<"Хотиту удалить ещё 1 элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
print(a,n);// вывод массива
 
do// добавление элемента
{
    cout<<"Введите элемент который хотите добавить\n";
    cin>>s;
    for (int i=n;i>0;i--)
        a[i]=a[i-1];
    a[0]=s;
    n++;
    cout<<"Хотиту добавить ещё 1 элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
print(a,n);// вывод массива
 
do// перестановка элементов
{
    int s1,s2;
    cout<<"Введите номера элементов которые хотите переставить местами\n";
    cin>>s>>s1;
    s2=a[s-1];
    a[s-1]=a[s1-1];
    a[s1-1]=s2;
    cout<<"Хотиту переставить ещё пару элементов?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
print(a,n);// вывод массива
 
do// поиск элементов
{
    cout<<"Введите элемент который хотите найти\n";
    cin>>s;
    cout<<"номера элементов равных "<<s<<endl;// количество сравнений равно индексу найденного элемента
    int s1=0;
    for (int i=0;i<n;i++)
        if(a[i]==s)
        {
            cout<< i+1<<" ";
            s1++;
        }
    if(s1==0) cout<<"Таких элементов нет\n";
    cout<<"\nХотите найти другой элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
bubbleSort(a,n);
 
print(a,n);// вывод массива
 
do// поиск элементов
{
    cout<<"Введите элемент который хотите найти\n";
    cin>>s;
    cout<<"номера элементов равных "<<s<<endl;// количество сравнений равно индексу найденного элемента
    int s1=0;
    for (int i=0;i<n;i++)
        if(a[i]==s)
        {
            cout<< i+1<<" ";
            s1++;
        }
    if(s1==0) cout<<"Таких элементов нет\n";
    cout<<"\nХотите найти другой элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
system("pause");
 
}
только насчёт 9 и 13 не уверен, по тому как в одномерном массиве количество сранений необходимое для нахождение элемента рано индексу данного элемента +1, если вам нужун именно такой поиск то всё правильно если какой то значит я не смог понять какой нужен
П.С. не ту сортировку вставил ( сейчас поправлю
1
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 145
13.04.2014, 18:48  [ТС] 3
Вот задание.Надеюсь на помощь. Вот что у самого получилось... Что делать дальше?
1) Удалить элемент с заданным номером.
2) Добавить
3) Перестановки
4) Поиск
5) сортировка


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 <vcl.h>
#pragma hdrstop
#include <vcl.h>
#include <cstdlib>
#include <ctime>
#include <iostream>
 
 
 
using namespace std;
 
//---------------------------------------------------------------------------
 
#pragma argsused
void main()
{
srand(time(NULL));         //типа рандомайз в делфи
const n=10;                //размерность массива
int a[n];                  //целочисленный массив
 
for (int i=0;i<n;i++){     //заполнение массива
a[i]=rand()%99+1;
}
 
for (int i=0;i<n;i++){     //вывод массива
cout << a[i] << ' ';
}
 
cout <<endl;              //перевод строки
 
system("pause");
 
}
//---------------------------------------------------------------------------
0
kiborgdelto
71 / 73 / 41
Регистрация: 23.03.2011
Сообщений: 141
13.04.2014, 18:56 4
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <ctime>
#include <iostream>
using namespace std;
 
void print(int *a, int n)
{
    for (int i=0;i<n;i++)     //вывод массива
    cout << a[i] << ' ';
    cout <<endl;              //перевод строки
}
 
void bubbleSort(int* arr, int size)// пузырьком
{
    int tmp;
 
    for(int i = 0; i < size - 1; ++i) // i - номер прохода
    {            
        for(int j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {     
            if (arr[j + 1] < arr[j]) 
            {
                tmp = arr[j + 1]; 
                arr[j + 1] = arr[j]; 
                arr[j] = tmp;
            }
        }
    }
}
//---------------------------------------------------------------------------
 
 
void main()
{
setlocale(0,"");
srand(time(NULL));         //типа рандомайз в делфи
const int n1=20;                //размерность массива
int a[n1];                  //целочисленный массив
int n;
n=10;
for (int i=0;i<n;i++)    //заполнение массива
    a[i]=rand()%99+1;
 
print(a,n);// вывод массива
 
int s;// удаление элемента
do
{
    cout<<"Введите номер элемента который хотите удалить\n";
    cin>>s;
    for (int i=s-1;i<n-1;i++)
        a[i]=a[i+1];
    n--;
    cout<<"Хотиту удалить ещё 1 элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
print(a,n);// вывод массива
 
do// добавление элемента
{
    cout<<"Введите элемент который хотите добавить\n";
    cin>>s;
    for (int i=n;i>0;i--)
        a[i]=a[i-1];
    a[0]=s;
    n++;
    cout<<"Хотиту добавить ещё 1 элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
print(a,n);// вывод массива
 
do// перестановка элементов
{
    int s1,s2;
    cout<<"Введите номера элементов которые хотите переставить местами\n";
    cin>>s>>s1;
    s2=a[s-1];
    a[s-1]=a[s1-1];
    a[s1-1]=s2;
    cout<<"Хотиту переставить ещё пару элементов?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
print(a,n);// вывод массива
 
do// поиск элементов
{
    cout<<"Введите элемент который хотите найти\n";
    cin>>s;
    cout<<"номера элементов равных "<<s<<endl;// количество сравнений равно индексу найденного элемента
    int s1=0;
    for (int i=0;i<n;i++)
        if(a[i]==s)
        {
            cout<< i+1<<" ";
            s1++;
        }
    if(s1==0) cout<<"Таких элементов нет\n";
    cout<<"\nХотите найти другой элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
 
for (int j=1;j<n;j++){// сортировка методом простого включения
    int i=0;
    if (a[j]< a[j-1]) {
      //Что бы значение j мы не меняли а работали с i
        i=j;
     //Меняем местами пока не найдем нужное место
        do{
           swap(a[i],a[i-1]);
           i--;
           //защита от выхода за пределы массива
           if (i == 0) break;
           }
        while (a[i]< a[i-1]) ;
   }
}
cout<<"Отсортированный массив\n"
print(a,n);// вывод массива
 
do// поиск элементов
{
    cout<<"Введите элемент который хотите найти\n";
    cin>>s;
    cout<<"номера элементов равных "<<s<<endl;// количество сравнений равно индексу найденного элемента
    int s1=0;
    for (int i=0;i<n;i++)
        if(a[i]==s)
        {
            cout<< i+1<<" ";
            s1++;
        }
    if(s1==0) cout<<"Таких элементов нет\n";
    cout<<"\nХотите найти другой элемент?\nесли да нажмите 1\nесли нет то нажмите 2\n";
    cin>>s;
}
while(s==1);
 
system("pause");
 
}
поправил сортировку, теперь сортирует методом простого включения, теперь правильны все 14 пунктов задания )
0
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 145
13.04.2014, 19:13  [ТС] 5
У меня в С++ Builder'е выдает [Linker Error] Unresolved external '__InitVCL' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
Что это?
0
kiborgdelto
71 / 73 / 41
Регистрация: 23.03.2011
Сообщений: 141
13.04.2014, 19:31 6
тут не могу ничем помочь, пользуюсь только visual studio, с другими компеляторами практически неработал (кроме Borland C)
1
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 145
13.04.2014, 21:27  [ТС] 7
На визуальной студии тоже ошибка : 1>LINK : fatal error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден
И кстати почему сортировка пузьрьком? разве это одно и тоже?
0
kiborgdelto
71 / 73 / 41
Регистрация: 23.03.2011
Сообщений: 141
13.04.2014, 21:30 8
Лучший ответ Сообщение было отмечено aksdaqg как решение

Решение

хмм у меня всё работало, тьфу ты забыл удалить функцию сортировки пузырьком, удали её из кода, сортировка включением в функции мэйн
1
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 145
13.04.2014, 21:59  [ТС] 9
Хорошо. Спасибо вам огромное за помощь.
0
13.04.2014, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2014, 21:59

Целочисленный одномерный массив, сортировка по убыванию и возрастанию
Написать программу, позволяющую сортировать введенный пользовате-лем...

Одномерный массив, сортировка выбором, изменения знака на противоположный
Дан массив С(n). Поменять знаки на противоположные у всех отрицательных...

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


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

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

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