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

Массив целых чисел... - C++

Восстановить пароль Регистрация
 
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
07.12.2011, 12:38     Массив целых чисел... #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
#include <iostream>
using namespace std;
 
int main()
{
        setlocale(LC_ALL, "rus");
        //setlocale(LC_ALL, "rus")
        long i,j,k,m,n,buf;
        long * a;//Указатель на элементы последовательности
        do
        {
                cout<<"Введи число элементов : ";cin>>n;//Ввели число элементов
                a = new long[n];//Память под элементы последовательности
                cout<<"\tВведите последовательность\n";
                                cout<<"a["<<1<<"] = ";
                                cin>>a[0];m = a[0];
                //Вводим последовательность
                for(i = 1; i < n; i++)
                                {
                                        cout<<"a["<<i + 1<<"] = ";
                                        cin>>a[i];
                                        if(m < a[i])
                                                m = a[i];
                                }
                                cout<<"Предел последовательности : "<<m<<endl;
                cout<<"\tОтсортированная последовательность\n";
                //Cортируем методом прямого выбора
                for(i = 0, k = 0; i < n; i++)
                {
                        for(j = i + 1; j < n; j++)
                        {
                                if(a[j] < a[i])
                                {
                                        buf = a[i];
                                        a[i] = a[j];
                                        a[j] = buf;
                                        k++;//Счётчик операций
                                }
                        }
                        cout<<"a["<<i + 1<<"] = "<<a[i]<<"\n";
                }
                cout<<"Кол-во операций : "<<k<<"\n";
                cout<<"Сумма m + n   : "<<m + n<<"\n";
                delete [] a;//Чистим память
                cout<<"Введите 1 для продолжения \n";
                cin>>n;
        }
        while(n == 1);
    return 0;
}
Нужно сделать, чтобы если человек вводит числа в массив, например (1 2 3 -5 -7 6 9 8 4 0) и отрицательные числа должны заменяться на -1 т.е: Получется отсортированный массив:
-1
-1
0
1
2
3
4
6
8
9
т.е. Чтобы на том м есте где должны находится числа -5 и -7 они заменялись на -1.
А препод вообще просит например, если массив размерности 8 и вводится 4 числа: 0 4 1 7, чтобы выдавало массив :
0
1
-1
-1
4
-1
7
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2011, 12:38     Массив целых чисел...
Посмотрите здесь:

Сформировать одномерный массив целых чисел, используя датчик случайных чисел, и распечатать массив. Удалить из массива все элементы, совпадающие с его C++
C++ Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
Сформировать одномерный массив целых чисел, используя датчик случайных чисел C++
C++ 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
C++ 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.12.2011, 12:56     Массив целых чисел... #2
Цитата Сообщение от DebieCooepr Посмотреть сообщение
А препод вообще просит
этого не понял

А так вот
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
#include <iostream>
 
 
int arr_cmp (const void *a, const void *b)
{
    return * (int *) a - * (int *) b;
}
 
void print (int *arr, size_t size)
{
    for (int i = 0; i < size; i++)
        std::cout<<arr[i]<<"  ";
}
 
int main(int argc, char* argv[])
{
    int arr[] = { 1, 2, 3, -5, -7, 6, 9, 8, 4, 0};
    size_t size = sizeof (arr) / sizeof (arr[0]);
 
    print (arr,size);
 
    qsort (arr,size,sizeof (arr[0]),arr_cmp);
 
    std::cout<<std::endl;
 
    for ( int i = 0 ; arr[i] < 0 && i < size ; i++)
        arr[i] = -1;
 
    print (arr,size);
 
        std::cout<<std::endl;
 
    system  ("pause");
    return 0;
}
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
07.12.2011, 13:04  [ТС]     Массив целых чисел... #3
Прога должна быть универсально чтобы пользователь сам вводил сови числа. Это всё у меня есть, я только не знаю что с отрицательными числанми делать т.к сам задание :
Имеется массив целых чисел a[1]...a[n], причём вс е числа НЕОТРИЦАТЕЛЬНЫ и не превосходят m. Отсортировать этот массив; число действий порядка m+n
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.12.2011, 13:07     Массив целых чисел... #4
Цитата Сообщение от DebieCooepr Посмотреть сообщение
Прога должна быть универсально чтобы пользователь сам вводил сови числа.
Переделайте мою, там только ввод добавить, это две строчки


Цитата Сообщение от DebieCooepr Посмотреть сообщение
Имеется массив целых чисел a[1]...a[n], причём вс е числа НЕОТРИЦАТЕЛЬНЫ и не превосходят m. Отсортировать этот массив; число действий порядка m+n
Какое-то задание странное, не такое как первое


Цитата Сообщение от DebieCooepr Посмотреть сообщение
и отрицательные числа должны заменяться на -1 т.е: Получется отсортированный массив:
-1
-1
0
1
2
3
4
6
8
9
Просили это?
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
07.12.2011, 13:22  [ТС]     Массив целых чисел... #5
Цитата Сообщение от go Посмотреть сообщение
Просили это?
Это я к приперу привел.
Вообще я делаю по свойму и мне осталось только что-то сделать с отрицательными числами если их введёт пользователь.
Может отрицательные числа просто удалить или ещё что-нибудь.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.12.2011, 13:23     Массив целых чисел... #6
Цитата Сообщение от DebieCooepr Посмотреть сообщение
и мне осталось только что-то сделать с отрицательными числами если их введёт пользователь
26-27 строчка в моем примере
Yandex
Объявления
07.12.2011, 13:23     Массив целых чисел...
Ответ Создать тему
Опции темы

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