Представим:
Массив arrayOfBolts[5] = {2, 4, 3, 1 , 5};
Массив arrayOfSrews[5]= {2, 4, 3, 1, 5};
Условие: Отсортировать по величине элементы каждого из массивов. Элементы внутри одного массива сравнивать нельзя. То бишь сравнению подлежат только Элемент с 1 массива с элементом 2 массива.
Задачу упрощает тот факт, что массивы идентичны и их значения по индексу представляют собой пары.
Вроде всё просто, но то ли сил, то ли знание С++ не позволяют мне написать эту функцию. Спасайте.
Вот код:
#include <iostream>
#include <string>
using namespace std;
int const SIZE = 5;
int const SIZE2 = 2;
int const SIZE3 = 5;
class BoltsAndScrews
{
public:
BoltsAndScrews();
void DisplayBolts();
void DisplayScrews();
void DisplayArrayOfPairs();
void addBolt(int);
void addScrew(int);
void findPairs();
void fillOut2Darray(int, int);
void Sort();
private:
int numberOfScrews = 0;
int numberOfBolts = 0;
int counter1 = 0;
int counter2 = 0;
int max;
int BoltsByMax[SIZE];
int ScrewsByMax[SIZE];
int arrayOfBolts[SIZE];
int newArrayOfBolts[SIZE];
int arrayOfScrews[SIZE];
int newArrayOfScrews[SIZE];
int arrayOfPairs[SIZE2][SIZE3];
};
BoltsAndScrews::BoltsAndScrews()
{
}
int main()
{
BoltsAndScrews test1;
test1.addBolt(1);
test1.addBolt(2);
test1.addBolt(3);
test1.addBolt(4);
test1.addBolt(5);
test1.addScrew(5);
test1.addScrew(4);
test1.addScrew(3);
test1.addScrew(2);
test1.addScrew(1);
cout << endl;
test1.DisplayBolts();
test1.DisplayScrews();
cout << endl;
test1.findPairs();
cout << endl << endl;
test1.DisplayArrayOfPairs();
cout << endl << endl;
test1.Sort();
cin.get();
cin.get();
return 0;
}
void BoltsAndScrews::DisplayBolts()
{
cout << "Array Of Bolts: ";
for (int i = 0; i < SIZE; i++)
{
cout << arrayOfBolts[i] << " ";
}
cout << endl;
}
void BoltsAndScrews::DisplayScrews()
{
cout << "Array Of Screws: ";
for (int i = 0; i < SIZE; i++)
{
cout << arrayOfScrews[i] << " ";
}
cout << endl;
}
void BoltsAndScrews::DisplayArrayOfPairs()
{
cout << "Array Of Pairs: " << endl;
for (int j = 0; j < 5; j++)
{
cout << newArrayOfBolts[j] << " ";
}
cout << endl;
for (int i = 0; i < 5; i++)
{
cout << newArrayOfScrews[i] << " ";
}
cout << endl;
}
void BoltsAndScrews::addBolt(int x)
{
arrayOfBolts[numberOfBolts] = x;
numberOfBolts++;
}
void BoltsAndScrews::addScrew(int x)
{
arrayOfScrews[numberOfScrews] = x;
numberOfScrews++;
}
void BoltsAndScrews::fillOut2Darray(int x, int y)
{
int bolt = x;
int screw = y;
newArrayOfBolts[counter1] = bolt;
newArrayOfScrews[counter2] = screw;
counter1++;
counter2++;
cout << "FillOutThing - " << bolt << " " << screw << endl << endl;
return;
}
void BoltsAndScrews::Sort()
{
int index = 0;
int count1 = 0, count2 = 0;;
do
{
for (int i = 0; i < SIZE; i++)
{
if (newArrayOfBolts[i] >= newArrayOfScrews[i])
{
cout << newArrayOfBolts[i] << " = " << newArrayOfScrews[i] << endl;
BoltsByMax[count1] = newArrayOfBolts[i];
ScrewsByMax[count2] = newArrayOfScrews[i];
index = i;
}
}
count1++;
count2++;
index++;
cout << endl << "Bolts By Max: ";
for (int i = 0; i < SIZE; i++)
{
cout << BoltsByMax[i];
}
cout << endl << "Screws By Max: ";
for (int i = 0; i < SIZE; i++)
{
cout << ScrewsByMax[i];
}
} while (index > SIZE);
}
void BoltsAndScrews::findPairs()
{
for (int i = 0; i < SIZE; i++) //pick fist bolt
{
for (int j = 0; j < SIZE; j++) //pick the first scew and compaire it to bolt below. If not math, pick next screw and so on
{
if (arrayOfBolts[i] < arrayOfScrews[j])
{
cout << "Condition: Screw will go in the bolt." << " Bolt: [" << arrayOfBolts[i] << "] less than Screw: [" << arrayOfScrews[j] << "]" << endl;
}
if (arrayOfBolts[i] == arrayOfScrews[j])
{
cout << endl << "Condition: Screw will fit bolt exactly." << " Bolt: [" << arrayOfBolts[i] << "] same as Screw: [" << arrayOfScrews[j] << "]" << endl << endl;
cout << endl << "bolt " << arrayOfBolts[i];
cout << endl << "screw " << arrayOfScrews[j] << endl << endl;;
newArrayOfBolts[counter1] = arrayOfBolts[i];
newArrayOfScrews[counter2] = arrayOfScrews[j];
counter1++;
counter2++;
/*fillOut2Darray(arrayOfBolts[i], arrayOfScrews[j]);*/
}
if (arrayOfBolts[i] > arrayOfScrews[j])
{
cout << "Condition: Screw will be loose." << " Bolt: [" << arrayOfBolts[i] << "] bigger than Screw: [" << arrayOfScrews[j] << "]" << endl;
}
} // Screw
} // bolt
}