从类型'int'分配类型'struct protein'时不兼容的类型

时间:2018-04-03 02:15:52

标签: c

我已经在我的程序的这一部分工作了一段时间,但我似乎无法弄清楚这最后一点有什么问题。

对于行“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);
}

2 个答案:

答案 0 :(得分:1)

您的代码中有struct protein temp;int temp;,这会导致各种混淆(对您和编译器而言)。

看起来你只需要结构版本。如果确实需要将int版本重命名为temp_index或类似。

使用所有启用的警告进行编译可能会突出显示这是一个问题。

答案 1 :(得分:1)

您正在使用哪种语言和哪种编译。您的代码有几个疑问。首先是相同变量temp的重复声明。它应该抛出编译错误,例如error: conflicting declaration ‘protein temp’。  只需选择不同的名称即可解决您的问题。