Особо не тестировал, но всё же. Возможно нужно добавить(или убрать) какие-нибудь проверки.
| Код | #include <iostream.h>
int main(void) { int ar1[] = {10, 20, 30, 50, 60}; int ar2[] = {1, 5, 10, 20, 25, 30, 35, 40, 50, 60}; int ar3[] = {1, 3, 5, 9, 10, 50, 60}; int sz1 = sizeof(ar1) / sizeof(int), sz2 = sizeof(ar2) / sizeof(int), sz3 = sizeof(ar3) / sizeof(int); int i1 = 0, i2 = 0, i3 = 0; bool found = ar1[i1] == ar2[i2] && ar1[i1] == ar3[i3];
for(int i = 0; i < sz1; i++) cout << ar1[i] << ' '; cout << endl;
for(i = 0; i < sz2; i++) cout << ar2[i] << ' '; cout << endl;
for(i = 0; i < sz3; i++) cout << ar3[i] << ' '; cout << endl;
while(!found && (i1 < sz1 - 1 || i2 < sz2 - 1 || i3 < sz3 - 1)) { while((ar1[i1] < ar2[i2] || ar1[i1] < ar3[i3]) && i1 < sz1 - 1) i1++; while((ar2[i2] < ar3[i3] || ar2[i2] < ar1[i1]) && i2 < sz2 - 1) i2++; while((ar3[i3] < ar1[i1] || ar3[i3] < ar2[i2]) && i3 < sz3 - 1) i3++;
found = ar1[i1] == ar2[i2] && ar1[i1] == ar3[i3]; }
if(found) cout << ar1[i1] << ' ' << ar2[i2] << ' ' << ar3[i3] << endl; else cout << "not found" << endl;
return 0; } |
|