Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
#1

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

07.12.2011, 12:38. Просмотров 278. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив целых чисел... (C++):

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

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

Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел - C++
Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел больших исходных на два порядка. Напечатать массивы в два...

Переделать массив целых чисел на массив вещественных чисел - C++
помогите переделать этот код: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define RANGE 20 int main() { int ARRAY_SIZE=100; ...

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

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

5
go
Эксперт С++
3586 / 1366 / 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;
}
0
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
07.12.2011, 13:04  [ТС] #3
Прога должна быть универсально чтобы пользователь сам вводил сови числа. Это всё у меня есть, я только не знаю что с отрицательными числанми делать т.к сам задание :
Имеется массив целых чисел a[1]...a[n], причём вс е числа НЕОТРИЦАТЕЛЬНЫ и не превосходят m. Отсортировать этот массив; число действий порядка m+n
0
go
Эксперт С++
3586 / 1366 / 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
Просили это?
0
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
07.12.2011, 13:22  [ТС] #5
Цитата Сообщение от go Посмотреть сообщение
Просили это?
Это я к приперу привел.
Вообще я делаю по свойму и мне осталось только что-то сделать с отрицательными числами если их введёт пользователь.
Может отрицательные числа просто удалить или ещё что-нибудь.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
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
Привет! Вот еще темы с ответами:

Сформировать одномерный массив целых чисел, используя датчик случайных чисел - C++
1) Сформировать одномерный массив целых чисел, используя датчик случайных чи-сел. 2) Распечатать полученный массив. 3) Удалить элементы...

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

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

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


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

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

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