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

visual c++. Удалить минимальный и максимальный элементы массива. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, делится ли на три введенное с клавиатуры целое число http://www.cyberforum.ru/cpp-beginners/thread102691.html
1.написать программу, которая проверяет, является ли введенное пользователем целое число четных. 2. написать программу, которая проверяет, делится ли на три введенное с клавиатуры целое число 3. написать программу, которая сравнивает два введенных с клавиатуры числа.
C++ Потоки! Скажите пожалуйста, как оформить функцию через поток.... И как можно проще! ))) А то я что-то не понимаю... ))) http://www.cyberforum.ru/cpp-beginners/thread102687.html
Скрыть курсор в консольном приложении C++
здрасти. Есть ли какая нибудь функция которая скрывает курсор? (в консоли)
C++ Описать структуру "комплексное число"
Можете пож-ста проверить правильно ли написана программа по условию Описать структуру "комплексное число", и написать функцию которая возводит это число в квадрат #include<iostream.h> #include<conio.h> struct complex { double p,q; }; complex square(complex a) {
C++ строки упорядочить по возрастанию http://www.cyberforum.ru/cpp-beginners/thread102652.html
Привет.Ребята не могли вы проверить мою прогу. Работает точно через раз. Иногда всё нормально, а иногда при вводе массива выскакивает какаято ошибка. Условие. В двумерном массиве те строки чей первый элемент отрицателен упорядочить по возрастанию. Вот мой код. #include<iostream.h> using namespace std; #include<math.h> const int n=99,m=99;
C++ В массив записать римские цифры, соответствующие номеру ячейки помогите В цикле,в массив из 5 символов,записать римские цифры, соответствующие номеру строки(можно использовать оператор switch() case) подробнее

Показать сообщение отдельно
M128K145
Эксперт C++
 Аватар для M128K145
8277 / 3496 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
10.03.2010, 00:26     visual c++. Удалить минимальный и максимальный элементы массива.
STL - не интересно...
Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include "Array.h"
int main()
{
    setlocale(LC_ALL, "Russian");
    int size;
    std::cout<<"Введите размерность массива:\n> ",
        std::cin>>size;
    Array* arr = new Array(size);
    arr->Input();
    arr->removeMinMax();
    arr->Output();
    system("pause");
    return EXIT_SUCCESS;
}
Array.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Array
{
public:
    Array(int);
    int getValue(int);
    void setValue(int, int);
    int getSize();
    void Input();
    void Output();
    int findMin();
    int findMax();
    void removeMinMax();
private:
    int* Copy();
    int* arr;
    int size;
};
Array.cpp
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
74
75
76
77
78
79
#include "Array.h"
#include <iostream>
 
Array::Array(int _size)
{
    size = _size;
    arr = new int[size];
}
 
int Array::getValue(int index)
{
    return arr[index];
}
void Array::setValue(int value, int index)
{
    arr[index] = value;
}
int Array::getSize()
{
    return size;
}
 
void Array::Input()
{
    std::cout<<"Введите массив:\n";
    for(int index = 0; index < size; ++index)
        std::cin>>arr[index];
    fflush(stdin);
}
void Array::Output()
{
    std::cout<<"Массив:\n";
    for(int index = 0; index < size; ++index)
        std::cout<<arr[index]<<' ';
    std::cout<<std::endl;
}
 
int* Array::Copy()
{
    int* buf = new int[size];
    for(int index = 0; index < size; ++index)
        buf[index] = arr[index];
    return buf;
}
int Array::findMin()
{
    int index, indexMin = 0;
    for(index = 1; index < size; ++index)
        if(arr[index] < arr[indexMin])
            indexMin = index;
    return indexMin;
}
int Array::findMax()
{
    int index, indexMax = 0;
    for(index = 1; index < size; ++index)
        if(arr[index] > arr[indexMax])
            indexMax = index;
    return indexMax;
}
void Array::removeMinMax()
{
    int* buf = Copy();
    int index, fExtr = findMin(), sExtr = findMax();
    arr = new int[size - 2];
    if(fExtr > sExtr)
    {
        fExtr ^= sExtr;
        sExtr ^= fExtr;
        fExtr ^= sExtr;
    }
    for(index = 0; index < fExtr; ++index)
        arr[index] = buf[index];
    for(index = fExtr; index < sExtr - 1; ++index)
        arr[index] = buf[index + 1];
    for(index = sExtr - 1; index < size - 2; ++index)
        arr[index] = buf[index + 2];
    size -= 2;
}
 
Текущее время: 11:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru