我无法弄清楚如何让排序选择工作。我必须按结构升序对结构中的分数(双打)进行排序。
这是我的代码,我会评论我在哪里得到错误。
我的结构:
struct diveInfo
{
string diversName;
double totalScore;
double totalScore;
double diff;
double scores[NUM_SCORES];
};
我的功能是按升序对分数进行排序:
void selectionSort(diveInfo *ptr, int size)
{
diveInfo temp;
double minValue;
int startScan;
int minIndex;
for ( startScan = 0; startScan < (size - 1); startScan++)
{
minIndex = startScan;
minValue = ptr[startScan].scores; //keep getting an error here saying type double cannot be assigned to an entity of type double.
temp = ptr[startScan];
for (int index = startScan + 1; index < size; index++)
{
if ( ptr[index].scores < minValue)
{
temp = ptr[index];
minIndex = index;
}
}
ptr[minIndex] = ptr[startScan];
ptr[startScan] = temp;
}
}
答案 0 :(得分:1)
scores
是双精度数组,您需要在此数组中指定索引以访问特定的double值。
例如minValue = ptr[startScan].scores[0];
答案 1 :(得分:1)
minValue = ptr[startScan].scores;
scores
是一系列双打。 arrayname也是一个指针。 scores
类型为double*
[正好可以指向大小为NUM_SCORES
的数组]
您正在为int分配double
指针。
答案 2 :(得分:0)
你试图将double *(双精度数组是double *)分配给double。
您可以尝试将双打数组更改为vector
双打。然后,您可以使用std::sort
或std::stable_sort
对其进行排序。