我已经在我的程序的这一部分工作了一段时间,但我似乎无法弄清楚这最后一点有什么问题。
对于行“protein_powders [最大] = temp;”我收到以下错误:从类型'int'分配类型'struct protein'时出现不兼容的类型
我该如何解决?
提前致谢!
void selection_sort(struct protein protein_powders[], int n)
{
struct protein temp;
int i, largest = 0, temp;
if (n == 1)
return;
for (i = 1; i < n; i++)
{
if (protein_powders[i].averageReview <
protein_powders[largest].averageReview)
largest = i;
if (largest < n - 1)
{temp = protein_powders[n-1];}
protein_powders[n-1] = protein_powders[largest];
protein_powders[largest] = temp;
selection_sort(protein_powders, n - 1);
}
答案 0 :(得分:1)
您的代码中有struct protein temp;
和int temp;
,这会导致各种混淆(对您和编译器而言)。
看起来你只需要结构版本。如果确实需要将int版本重命名为temp_index
或类似。
使用所有启用的警告进行编译可能会突出显示这是一个问题。
答案 1 :(得分:1)
您正在使用哪种语言和哪种编译。您的代码有几个疑问。首先是相同变量temp的重复声明。它应该抛出编译错误,例如error: conflicting declaration ‘protein temp’
。
只需选择不同的名称即可解决您的问题。