Пришел к этапу когда у меня есть два иднетичных массива, которые представляют собой пару ( болт + гайка ) Ex. arrayOfScrews[0] = arrayOfBolts[0], arrayOfScrews[1] = arrayOfScrews[1] и так далее.
Теперь в моей голове сложилась картина, что нужно сравнивать между собой, но не болт со следующим болтом, а болт со следующей гайкой, она ведь по размеру следующего болта.
Люди добрые, кто может написать такую функцию? Голова уже совсем не варит
Вот код:
#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
}
Собственно интересующая меня функиция - Sort()