で二番目に大きい数Iは、アレイ内の最大と二番目に大きい要素を見つけるためのC++のコードを書かれています。コードは正常に動作しますが、問題は2番目に大きい番号の場所が更新されていないことです。 2番目に大きい番号の値は正しいが、その位置が正しくない。
#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();
}
'DATA [I]> largestNumber'あなたは' LOC2 = LOC1を追加する必要があります; '' LOC1は= i'前に:あなたは 'secondLargestNumber'を割り当てるたびに、あなたは' loc2'を割り当てる必要があります。 – Franck
値を保持する必要はありませんが、位置は十分です。これによりコードが大幅に簡素化されます – Slava