2
203
Здравствуйте. Скажите пожалуйста как сделать сортировку по последней цифре например 14 21 27 33 и поставить их по возрастанию.
У меня есть код программы но но не получается выполнить 4 последних условия
• упорядочить элементы массива по возрастанию последней цифры элементов;
• вычисление значения максимальной последней цифры элемента;
• вывод номера(номеров) элемента с максимальной последней цифрой;
• вывод всех элементов с максимальной последней цифрой
Вот условия целиком.
Условие Написать программу, в которой предусмотреть класс для организации обработки целочисленного массива. Внутри класса реализовать два конструктора: 1–й конструктор должен обеспечивать ввод элементов массива с клавиатуры; 2—й конструктор должен формировать значения элементов массива в задаваемом диапазоне [min, max] с помощью генератора случайных значений. Внутри класса предусмотреть следующие методы:
• вывод массива на экран;
• упорядочить элементы массива по возрастанию последней цифры элементов;
• вычисление значения максимальной последней цифры элемента;
• вывод номера(номеров) элемента с максимальной последней цифрой;
• вывод всех элементов с максимальной последней цифрой
Заранее всем спасибо.
Вот что есть
У меня есть код программы но но не получается выполнить 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;
}