Дан одномерный массив. Найти количество различных чисел в этом массиве, используя функцию сортировки.
Код (использовал сортировку методом пузырька):
#include <iostream>
using namespace std;
int main()
{
setlocale( LC_ALL,"Russian");
int *arr; // Указатель для выделения памяти под массив
int size; // Размер массива
int copy; // Переменная для хранения числа
int num = 1; // Счетчик различных чисел
// Ввод количества элементов массива
cout << "Введите количество элементов массива: ";
cin >> size;
if (size <= 0) {
// Размер масива должен быть положитлеьным
cerr << "Неверный размер массива!" << endl;
return 1;
}
arr = new int[size]; // Выделение памяти под массив
// Заполнение массива
for (int i = 0; i < size; i++) {
cout << "Введите arr[" << i << "]: ";
cin >> arr[i];
}
int temp; // Временная переменная для обмена элементов местами
// Сортировка массива пузырьком
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Меняем элементы местами
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
copy = arr[0];
// Счет различных чисел
for (int i = 1; i < size; i ++) {
if (arr[i] != copy)
{
num ++;
}
copy = arr [i];
}
cout << "Количество различных элементов: " << num << endl; //Выводим количество различных чисел
delete [] arr; // Освобождаем память
return 0;
}
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int>vec;
int n; //к-ство е-тов массива
int q;
cout << "Введите к-ство е-тов массива" << endl;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> q;
vec.push_back(q);
}
sort(vec.begin(),vec.end()); //использываем функцию сортировки
int count = 1;
for (int i = 0; i < n - 1; i++)
{
for (int tmp = i + 1; tmp < n; tmp++)
{
if (vec[i] == vec[tmp]) {break;}
if (vec[i] != vec[tmp]) {count++;break;}
}
}
//раз массив отсортирован, то для того чтобы елемент был уникальным достаточно того, чтобы он не был равен следующему
cout <<"к-ство уникальніх е-тов" << count << endl;
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу оконное приложение на Embarcadero C++ Builder XE7, ОС Windows 7В нем при запуске главной формы создается, но сразу не запускается поток
Всем привет, надо разложить число на множители(определенные)С маленькими числами все работает
Оценки, полученные спортсменом в соревнованиях по фигурному катанию (в баллах), хранятся в массиве из 18 элементовВ первых шести элементах...