größte und zweitgrößte Zahl im Array C++
I einen Code in C++ geschrieben sind für die Suche nach größten und zweitgrößten Elements in einem Array. Code funktioniert gut, aber das Problem ist der Ort der zweitgrößten Nummer wird nicht aktualisiert. Obwohl der Wert der zweitgrößten Zahl korrekt ist, ist die Position jedoch nicht korrekt.
#include<iostream>
using namespace std;
void main()
{
int DATA[10];
int largestNumber, secondLargestNumber, loc1, loc2;
cout << "Enter 10 numbers of array DATA" << endl;
for (int i = 0; i < 10; i++)
{
cin >> DATA[i];
}
largestNumber = DATA[1];
secondLargestNumber = DATA[2];
loc1 = 1;
loc2 = 2;
if (largestNumber < secondLargestNumber)
{
largestNumber = DATA[2];
secondLargestNumber = DATA[1];
}
for (int i = 2; i < 10; i++)
{
if (DATA[i]>largestNumber)
{
secondLargestNumber = largestNumber;
largestNumber = DATA[i];
loc1 = i;
}
else if (DATA[i]>secondLargestNumber)
{
secondLargestNumber = DATA[i];
loc2 = i;
}
}
cout << "Largest Number with location :"<<largestNumber<<" "<<loc1 << endl;
cout << "Second Largest Number location :" << secondLargestNumber<<" "<<loc2 << endl;
cin.get();
cin.get();
}
im Fall 'DATA [i]> largestNumber' sollten Sie fügen' loc2 = loc1; '' vor loc1 = I': jedes Mal, wenn Sie zuweisen 'secondLargestNumber', müssen Sie' loc2' zuweisen. – Franck
Beachten Sie, dass Sie keine Werte beibehalten müssen, Positionen sind ausreichend. Dies wird Code erheblich vereinfachen – Slava