Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 301
1

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

07.12.2011, 12:38. Просмотров 296. Ответов 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
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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2011, 12:38
Ответы с готовыми решениями:

Задан массив K(m) попарно различных целых чисел. Получить все перестановки целых чисел
Помогите пожалуйста с программой. Задан массив K(m) попарно различных целых...

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
помогите!!!((( дан массив целых чисел,произвести для него следующие операции:...

Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел
Преобразовать одномерный массив вещественных случайных чисел в массив целых...

Переделать массив целых чисел на массив вещественных чисел
помогите переделать этот код: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Целую частьиз массива действительных чисел переписать в массив целых чисел
Использовать два одномерных массива - массив целых чисел и массив...

5
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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;
}
0
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 301
07.12.2011, 13:04  [ТС] 3
Прога должна быть универсально чтобы пользователь сам вводил сови числа. Это всё у меня есть, я только не знаю что с отрицательными числанми делать т.к сам задание :
Имеется массив целых чисел a[1]...a[n], причём вс е числа НЕОТРИЦАТЕЛЬНЫ и не превосходят m. Отсортировать этот массив; число действий порядка m+n
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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
Просили это?
0
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 301
07.12.2011, 13:22  [ТС] 5
Цитата Сообщение от go Посмотреть сообщение
Просили это?
Это я к приперу привел.
Вообще я делаю по свойму и мне осталось только что-то сделать с отрицательными числами если их введёт пользователь.
Может отрицательные числа просто удалить или ещё что-нибудь.
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
07.12.2011, 13:23 6
Цитата Сообщение от DebieCooepr Посмотреть сообщение
и мне осталось только что-то сделать с отрицательными числами если их введёт пользователь
26-27 строчка в моем примере
0
07.12.2011, 13:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2011, 13:23

Сформировать одномерный массив целых чисел, используя датчик случайных чисел
1) Сформировать одномерный массив целых чисел, используя датчик случайных...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Удалить элементы кратные 7. Добавить после каждого нечетного элемента массива...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел
Условие такое 1.Сформировать одномерный массив целых чисел, используя датчик...


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

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

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