C/C++

Массив на С++

Дано: массив А(5) и массив В(5). Массив, имеющий наибольшее количество одинаковых элементов преобразовать по правилу: все элементы <0 возвести в квадрат.
#include <iostream>
#include <set>
#include <cmath>
using namespace std;
void show(int* box, const size_t n) {
cout << "Elements: ";
for (size_t i = 0; i < n; ++i) cout << box[i] << ' ';
puts("");
}
void fill(int* box, const size_t n) {
cout << "Input " << n << " elements: ";
for (size_t i = 0; i < n; ++i) cin >> box[i];
}
void change(int* a, const size_t an, int* b, const size_t bn, const int dest, int src) {
set<int> sa;
for (size_t i = 0; i < an; ++i) sa.insert(a[i]);
set<int> sb;
for (size_t i = 0; i < bn; ++i) sb.insert(b[i]);
if (sa.size() < sb.size()) {
for (size_t i = 0; i < an; ++i) if (a[i] < dest) a[i] = pow(a[i], src);
} else {
for (size_t i = 0; i < bn; ++i) if (b[i] < dest) b[i] = pow(b[i], src);
}
}
int main() {
const size_t n = 5;
int a[n];
fill(a, n);
int b[n];
fill(b, n);
puts("--------------");
change(a, n, b, n, 0, 2);
show(a, n);
show(b, n);
}
Павел Кочетков
Павел Кочетков
54 449
Лучший ответ
for(i:=1;i<5;i++) {
if(A[i-1]=A[i]) o1++;
if(B[i-1]=B[i]) o2++;
}
if(o1>o2)
for(i:=1;i<5;i++) if(A[i]<0) A[i]=A[i]^2;
else
for(i:=1;i<5;i++) if(B[i]<0) B[i]=B[i]^2;

как-то по-индийски получилось.. может кто лучше предложит
***sikosh & Madikosh***
***sikosh & Madikosh***
13 084