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

Доделайте задачку с пузырьком - C++

Восстановить пароль Регистрация
 
Strah6
 Аватар для Strah6
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 5
23.12.2013, 23:56     Доделайте задачку с пузырьком #1
Всем привет, я этим делом недавно начал заниматься, и мне поручили задачку:
1 Найти номер мин. элемента массива (сделано)
2 Найти сумму элементов массива, между первым и вторым отрицательными числами (тож сделал)
3 Преобразовать массив таким образом, что бы вначале располагались все элементы, модуль которых не превышает 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
#include <iostream>
#include<time.h>
#include<conio.h>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    
    int n;
    cout<<"n=";
    cin>>n;
 
cout<<"================================="<<endl;
    int*a= new int[n];
    for(int i = 0; i < n;i ++)
    {
        a[i]= rand()%201-100;
        cout<<a[i]<<" ";
    }
cout<<endl<<"================================="<<endl;
    int minimum=LONG_MAX;
    
    for (int i=0;i<n;i++)
    
        if (a[i]<minimum)
    minimum = a[i];
    cout << "1) Minimum is " << minimum << endl;
 
    cout<<"================================="<<endl;
 
    int k=1,s=0,i,max=0,min=0;
    
    k=a[0];
 
for(i=0; i<n; i++)
{
 if(a[i]<k)
 k=i+1;
}
 
for(i=0;i<n;i++)
 {
 if(a[i]<0)
  {
  min=i;break;
  }
 }
 
for(i=min+1;i<n;i++)
{
 if(a[i]<0)
 {
  max=i;break;
 }
}
 
 
   for(i=min+1;i<max;i++)
 {
 s=a[i]+s;
 }
 cout<<"2) Sum is "<<s<<endl;
 cout<<"================================="<<endl;
 
  //здесь должна быть 3ая часть задачи
 
 cout<<"================================="<<endl;
 
getch();    
return 0;
}
До этого пузырик не писал, и сразу такой, который в нэте не нашел (на этом форуме есть что-то подобное, но только на паскале, который мне не катит.) Помогите пожалуйста дописать, до нового года надо срочно сдать!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 23:56     Доделайте задачку с пузырьком
Посмотрите здесь:

C++ Сортировка пузырьком с++
C++ сортировка пузырьком
C++ Сортироввка пузырьком.
Доделайте программу Исходник есть. Borland c++ (DOS) C++
C++ Доделайте прогу (Змейка)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
24.12.2013, 01:43     Доделайте задачку с пузырьком #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
// Преобразовать массив таким образом, что бы вначале располагались все
// элементы, модуль которых не превышает 1, а потом - все остальные
#include <cmath>
#include <iostream>
 
int main()
{
    const int M = 10;
    int arr[M] = {1, 2, -3, 4, 5, -1, 4, -2, 27, 1};
 
    // модифицированная пузырьковая сортировка
    for (int i=0; i < M; i++)
        for (int j=M-1; j > i; j--)
            if (std::abs(arr[j]) < std::abs(arr[i])) // сравниваем модули
            {
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
 
    for (int i=0; i < M; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
}
Strah6
 Аватар для Strah6
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 5
24.12.2013, 02:21  [ТС]     Доделайте задачку с пузырьком #3
Цитата Сообщение от MrGluck Посмотреть сообщение
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
// Преобразовать массив таким образом, что бы вначале располагались все
// элементы, модуль которых не превышает 1, а потом - все остальные
#include <cmath>
#include <iostream>
 
int main()
{
    const int M = 10;
    int arr[M] = {1, 2, -3, 4, 5, -1, 4, -2, 27, 1};
 
    // модифицированная пузырьковая сортировка
    for (int i=0; i < M; i++)
        for (int j=M-1; j > i; j--)
            if (std::abs(arr[j]) < std::abs(arr[i])) // сравниваем модули
            {
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
 
    for (int i=0; i < M; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
}
не конечно спасибо, но у меня динамический массив в коде то)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
24.12.2013, 02:27     Доделайте задачку с пузырьком #4
Цитата Сообщение от Strah6 Посмотреть сообщение
не конечно спасибо, но у меня динамический массив в коде то)
А Вы что за меня еще и есть будете?
намек понятен?)
Yandex
Объявления
24.12.2013, 02:27     Доделайте задачку с пузырьком
Ответ Создать тему
Опции темы

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