Класс Для Обработки Целочисленного Массива C++

Тема в разделе "C/C++/C#", создана пользователем 203, 1 июн 2012.

  1. 203

    203 New Member

    Регистрация:
    21 фев 2012
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте. Скажите пожалуйста как сделать сортировку по последней цифре например 14 21 27 33 и поставить их по возрастанию.
    У меня есть код программы но но не получается выполнить 4 последних условия
    • упорядочить элементы массива по возрастанию последней цифры элементов;
    • вычисление значения максимальной последней цифры элемента;
    • вывод номера(номеров) элемента с максимальной последней цифрой;
    • вывод всех элементов с максимальной последней цифрой

    Вот условия целиком.
    Условие Написать программу, в которой предусмотреть класс для организации обработки целочисленного массива. Внутри класса реализовать два конструктора: 1–й конструктор должен обеспечивать ввод элементов массива с клавиатуры; 2—й конструктор должен формировать значения элементов массива в задаваемом диапазоне [min, max] с помощью генератора случайных значений. Внутри класса предусмотреть следующие методы:
    • вывод массива на экран;
    • упорядочить элементы массива по возрастанию последней цифры элементов;
    • вычисление значения максимальной последней цифры элемента;
    • вывод номера(номеров) элемента с максимальной последней цифрой;
    • вывод всех элементов с максимальной последней цифрой


    Заранее всем спасибо.

    Вот что есть
    Код (C++):
    #include "stdafx.h"
    #include "iostream"
    #include "time.h"

    using namespace std;
    class Number
    {
    public:
    Number() {}
    Number(int min, int max, int n);
    void OutputMass(); // вывод массива на экран;
    void Sort(); // упорядочить по убыванию элементы массива кратные трем, удалив из него все остальные;
    void SetElementMassiva(int index, int element) { mass[index] = element; } // ввод элементов массива;
    void Summa(); // вычисление значения суммы элементов кратных трем;
    void GetIndexMassivKratTrem(); // вывод номеров элементов кратных трем;
    void GetChislaCratTrem(); // вывод всех элементов, кратным трем;
    void SetCount(int n_mass) { n = n_mass; } // установить размер массива;
    int GetCount() const { return n; } // узнать размер массива;
    private:
    int n;
    int n_2;
    int summ;
    int mass[50];
    int index[50];
    int buffer[50];
    };

    Number::Number(int min, int max, int n)
    {
    for (int i = 0; i < n; ++i)
    {
    mass[i] = rand()%abs(max - min + 1) + min;
    cout << "MASS : " << mass[i] << endl;
    }
    }

    void Number::OutputMass()
    {
    cout << "Vvyvod elementov massivae" << endl;
    for (int i = 0; i < n; ++i)
    cout << "MASSIV [" << i << "] " << mass[i] << endl;
    }

    void Number::Sort()
    {
    cout << "Sortirovka po ubyvaniu" << endl;
    n_2 = 0;
    summ = 0;
    for (int i = 0; i < n; ++i)
    {
    if (mass[i]%3 == 0)
    {
    index[n_2] = i;
    buffer[n_2] = mass[i];
    summ +=buffer[n_2];
    ++n_2;
    }
    }
    if (!n_2)
    {
    cout << "Error: Netu elementov kratnych trem" << endl;
    return;
    }

    for (int i = 0; i < n_2; ++i)
    {
    for (int j = i; j < n_2; ++j)
    {
    if (buffer[i] < buffer[j])
    {
    int element = buffer[i];
    buffer[i] = buffer[j];
    buffer[j] = element;
    }
    }
    cout << "Sort: " << buffer[i] << endl;
    }
    }

    void Number::Summa()
    {
    cout << "Vyvod summu elementov kratnyh trem" << endl;
    if (summ)
    cout << "Summa elementov kratnyh trem: " << summ << endl;
    else cout << "Error: Net elementov kratnyh trem." << endl;
    }

    void Number::GetIndexMassivKratTrem()
    {
    cout << "Vyvod nomerov massiva krat trem" << endl;
    for (int i = 0; i < n_2; ++i)
    cout << "Index: " << index[i] << endl;
    }

    void Number::GetChislaCratTrem()
    {
    cout << "Vyvod elementov kratnyh trem" << endl;
    bool ok = false;
    for (int i = 0; i < n; ++i)
    {
    if (mass[i]%3 == 0)
    {
    cout << "Element: " << mass[i] << endl;
    ok = true;
    }
    }
    if (!ok)
    cout << "Error: Ne naydeno elementov." << endl;
    }

    int main()
    {
    int count;
    srand((unsigned) time(NULL));
    cout << "Input razmer massiva: ";
    cin >> count;
    {
    int min, max;
    cout << "REZHIM: RANDOM" << endl;
    cout << "Vvedite diapozon(min, max): ";
    cin >> min >> max;
    Number pNumber(min, max, count);
    pNumber.SetCount(count);
    cout << "________________________________________" << endl;
    pNumber.Sort();
    cout << "________________________________________" << endl;
    pNumber.Summa();
    cout << "________________________________________" << endl;
    pNumber.GetIndexMassivKratTrem();
    cout << "________________________________________" << endl;
    pNumber.GetChislaCratTrem();
    cout << "________________________________________" << endl;
    }
    {
    Number pNumber;
    cout << "REZHIM: S klaviatury" << endl;
    pNumber.SetCount(count);
    int element;
    for (int i = 0; i < pNumber.GetCount(); ++i) // ввод массива
    {
    cout << "Element[" << i << "]: ";
    cin >> element;
    pNumber.SetElementMassiva(i, element);
    }
    cout << "________________________________________" << endl;
    pNumber.Sort();
    cout << "________________________________________" << endl;
    pNumber.Summa();
    cout << "________________________________________" << endl;
    pNumber.GetIndexMassivKratTrem();
    cout << "________________________________________" << endl;
    pNumber.GetChislaCratTrem();
    cout << "________________________________________" << endl;
    }
    system("pause");
    return 0;
    }
     
  2. 203

    203 New Member

    Регистрация:
    21 фев 2012
    Сообщения:
    4
    Симпатии:
    0
    Не нужно я сделал.
     
Загрузка...

Поделиться этой страницей