개체 배열 tArray에는 구매자 이름과 구매 한 항목의 numshares가 들어 있으며, 각 구매자는 개체 배열에 두 번 이상 올 수 있습니다. 5 대 구매자의 이름을 배열로 반환해야합니다.C++ - 까다로운 방법 - 필요 해결책
구매자 이름과 병행하여 두 개의 어레이를 실행하려고 시도했지만 다른 볼륨에는 총 볼륨이 있습니다.
내 방법이 일반적으로 잘못 되었기 때문에 결함이 발생합니다. 어떻게이 문제를 해결할 수 있습니까?
감사
ntransactions = 배열
string* Analyser::topFiveBuyers()
{
//set size and add buyer names for comparison.
const int sSize = 5;
string *calcString = new string[sSize];
calcString[0] = tArray[0].buyerName;
calcString[1] = tArray[1].buyerName;
calcString[2] = tArray[2].buyerName;
calcString[3] = tArray[3].buyerName;
calcString[4] = tArray[4].buyerName;
int calcTotal[sSize] = {INT_MIN, INT_MIN, INT_MIN, INT_MIN, INT_MIN};
//checks transactions
for (int i = 0; i<nTransactions; i++)
{
//compares with arrays
for(int j =0; j<sSize; j++)
{
//checks if the same buyer and then increase his total
if(tArray[i].buyerName == calcString[j])
{
calcTotal[j] += tArray[i].numShares;
break;
}
//checks if shares is great then current total then replaces
if(tArray[i].numShares > calcTotal[j])
{
calcTotal[j] = tArray[i].numShares;
calcString[j] = tArray[i].buyerName;
break;
}
}
}
return calcString;
}
몇 가지 제안 : 모든 경고와 디버깅 정보 (예 : Linux의 경우 'g ++ -Wall -g')를 사용하여 컴파일하십시오. 디버거 (리눅스에서'gdb')를 사용하는 방법을 배우십시오. 'std :: vector'를 사용해보십시오. –
어떤 결과가 나타 납니까? 그리고 당신은 어떤 결과를 기대합니까? –
* "구매자 이름과 병렬로 두 개의 배열을 실행하려고 시도했지만 다른 배열에 전체 볼륨이 있습니다."* - 병렬 배열은 일반적으로 링크 된 데이터를 클래스에 배치하고 해당 클래스의 배열을 만들어야한다는 표시입니다 . – JBentley