C/C++

Задание на массив, С++

Дано: массив А(5) и массив В(5). Массив, имеющий наибольшее количество различных элементов преобразовать по правилу: все четные элементы разделить на 2.
// при автоматическом заполнении массивов

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
const int n = 5;
float A[n],B[n]; // при делении лучше использовать действительне числа, чем целые
srand(time(nullptr));
rand();
int countra = 0, countrb = 0;
bool povtor;
for(int x = 0; x < n; x++)
{
A[x] = rand() % 21; // вводится целое число, чтобы удонее определять чётность
cout << A[x] << ' ';
povtor = false;
for(int y = 0; y < x; y++)
{
if(A[x] == A[y])
{
povtor = true;
break;
}
}
if(!povtor) countra++;
}
cout << endl << endl;
for(int x = 0; x < n; x++)
{
B[x] = rand() % 21;
cout << B[x] << ' ';
povtor = false;
for(int y = 0; y < x; y++)
{
if(B[x] == B[y])
{
povtor = true;
break;
}
}
if(!povtor) countrb++;
}
cout << endl << endl;
if(countra > countrb)
{
for(int x = 0; x < n; x++)
{
if(static_cast<int>(A[x]) == A[x]) // если целое число
if(static_cast<int>(A[x]) % 2 == 0) A[x] /= 2.0;
cout << A[x] << ' ';
}
cout << endl;
}
else if(countrb > countra)
{
for(int x = 0; x < n; x++)
{
if(static_cast<int>(B[x]) == B[x]) // если целое число
if(static_cast<int>(B[x]) % 2 == 0) B[x] /= 2.0;
cout << B[x] << ' ';
}
cout << endl;
}
else
{
cout << "Одинаковое количество различных элементов." << endl;
}
return 0;
}
Сергей Катков
Сергей Катков
98 638
Лучший ответ
Сергей Катков // при ручном вводе

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
const int n = 5;
float A[n],B[n]; // при делении лучше использовать действительне числа, чем целые
srand(time(nullptr));
rand();
int countra = 0, countrb = 0;
bool povtor;
for(int x = 0; x < n; x++)
{
cout << "A["<<x<<"] = ";
cin >> A[x];
povtor = false;
for(int y = 0; y < x; y++)
{
if(A[x] == A[y])
{
povtor = true;
break;
}
}
if(!povtor) countra++;
}
Сергей Катков Я вот что подумал. Поскольку делятся только чётные числа, то можно использовать тип int, а не float. Всё равно результат будет -- цело число. Сейчас переделаю.