• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Приглашаем на KubanCTF

    Старт соревнований 14 сентября в 10:00 по москве

    Ссылка на регистрацию в соревнованиях Kuban CTF: kubanctf.ru

    Кодебай является технологическим партнером мероприятия

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

  • Автор темы 203
  • Дата начала
2

203

Здравствуйте. Скажите пожалуйста как сделать сортировку по последней цифре например 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;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!