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

Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы - C++

Восстановить пароль Регистрация
 
twix_uk
 Аватар для twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 71
14.04.2014, 12:19     Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы #1
Удалить из массива, в котором все элементы различны:
а) максимальный элемент
б) минимальный элемент

Добавлено через 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
#include <iostream>
#include <vcl.h>
#include <cmath>
//------------------------------------------------------------------------------
 
int main()
{
const int N=10;
int i,k=0,s=0,j,x;
float massiv[N];
system ("echo Введите 10 чисел: ");
cout<<"--------------------------------"<<endl;
for(i=0;i<N;i++)
cin>>massiv[i];
cout<<"--------------------------------"<<endl;
system ("echo Массив");
for(i=0;i<N;i++)
cout<<"Massiv["<<i<<"] = "<<massiv[i]<<endl;
for(i=0; i<N; i++)
{
 if(massiv[i]<0)
 k++;
}
 
cout<<"--------------------------------"<<endl;
system("pause");}
//------------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 12:19     Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы
Посмотрите здесь:

C++ Удалить минимальный и максимальный элементы массива
Удалить минимальный и максимальный элементы массива C++
visual c++. Удалить минимальный и максимальный элементы массива. C++
Удалить из массива все элементы,в записи которых все цифры различны. C++
C++ Удалить из массива все элементы,в записи которых все цифры различны.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
D_Ok
43 / 32 / 12
Регистрация: 11.02.2014
Сообщений: 134
14.04.2014, 17:44     Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы #2
удалить в таком массиве нельзя, нужно динамический создавать

Добавлено через 3 часа 31 минуту
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
#include <iostream>
void Del_Max(int pos, int *&arr, int &size);
void Del_Min(int pos, int *&arr, int &size);
int main()
{
    using namespace std;
int N=10;
int pmax=0, pmin=0;
int *arr = new int [N];
for (int i = 0; i < N; i++ )
{
    cin >> arr[i];
}
for (int i = 0; i < N; i++ )
{
    cout << "[" << i << "] - " <<  arr[i] << endl;
}
for (int i = 1; i < N; i++)
{
    if (arr[pmax] < arr[i])
        pmax=i;
}
cout << "Max is " << arr[pmax];
Del_Max(pmax, arr, N);
for (int i = 1; i < N; i++)
{
    if (arr[pmin] > arr[i])
        pmin=i;
}
cout << "\tMin is " << arr[pmin] << endl;
Del_Min(pmin, arr, N);
for (int i = 0; i < N; i++ )
{
    cout << "[" << i << "] - " <<  arr[i] << endl;
}
return 0;
}
void Del_Max(int pos, int *&arr, int &size)
{
    size--;
    int *temp = new int [size];
    for (int i = 0; i < size+1; i++)
    {
        if (pos > i)
            temp[i] = arr[i];
        else if (pos < i)
            temp[i-1] = arr[i];
    }
    delete[]arr;
    arr = NULL;
    arr = temp;
}
void Del_Min(int pos, int *&arr, int &size)
{
    size--;
    int *temp = new int [size];
    for (int i = 0; i < size+1; i++)
    {
        if (pos > i)
            temp[i] = arr[i];
        else if (pos < i)
            temp[i-1] = arr[i];
    }
    delete[]arr;
    arr = NULL;
    arr = temp;
}
twix_uk
 Аватар для twix_uk
2 / 3 / 3
Регистрация: 26.12.2012
Сообщений: 71
14.04.2014, 23:03  [ТС]     Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы #3
ну тут не удаление получается нужно делать, а смещение
D_Ok
43 / 32 / 12
Регистрация: 11.02.2014
Сообщений: 134
15.04.2014, 00:00     Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы #4
Цитата Сообщение от twix_uk Посмотреть сообщение
ну тут не удаление получается нужно делать, а смещение
тогда так, но отображать надо с учетом того, что мы сместили. В этом случае смещение влево, с выкидыванием max & min элемента, но два элемента последних массива некуда не делись, ну и им при желание можно 0 присвоить.
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
int main()
{
    const int N = 10;
    int pmax=0, pmin=0;
    int arr[N];
    for (int i = 0; i < N; i++)
    {
        cin >> arr[i];
    }
    for (int i = 0; i < N; i++)
    {
        if (arr[pmax] < arr[i])
            pmax = i;
    }
    for (int i = 0; i < N; i++)
    {
        if (pmax > i)
            arr[i] = arr[i];
        else if (pmax < i)
            arr[i - 1] = arr[i];
    }
    for (int i = 0; i < N-1; i++)
    {
        cout << arr[i] << "  ";
    }
    cout << endl;
    for (int i = 0; i < N - 1; i++)
    {
        if (arr[pmin] > arr[i])
            pmin = i;
    }
    for (int i = 0; i < N - 1; i++)
    {
        if (pmin > i)
            arr[i] = arr[i];
        else if (pmin < i)
            arr[i - 1] = arr[i];
    }
    for (int i = 0; i < N - 2; i++)
    {
        cout << arr[i] << "  ";
    }
    cout << endl;
    return 0;
}
Yandex
Объявления
15.04.2014, 00:00     Удалить из массива, в котором все элементы различны, максимальный и минимальный элементы
Ответ Создать тему
Опции темы

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