你能否给我一个如何解决这个问题的提示?
如果我可以使用的唯一功能是检查两辆车是否有相同的颜色,我怎样才能知道大多数汽车是否有相同的颜色?
答案 0 :(得分:7)
通过相等,您可以先build equivalence个类,然后计算最大的一个。
答案 1 :(得分:0)
您可以创建一个“列表”,其中汽车的颜色是关键值,它会计算您拥有的那种颜色的汽车数量并存储该颜色的汽车。
它是这样的:
您将拥有此字段的结构:
struct color
car *car_with_color = NULL
int count = 0
所以你去第一家汽车店它的颜色并添加1:
color[1].car_with_color=&cars[1];
color[1].count=1;
然后你会做下一辆车:
if (cars[2].color == color[1].car_with_color->color)
color[1].count++;
else
color[2].car_with_color=&cars[2];
color[2].count=1;
等等:
for (i=1;i<=NUM_OF_CARS;i++){
j=1;
while (color[j].car_with_color != NULL){
if (cars[i].color == color[j].car_with_color->color){
color[i].count++;
break;
}else
j++;
}
if (color[j].car_with_color == NULL){
color[j].car_with_color=&cars[i];
color[j].count=1;
}
}
它是用C
类似的伪代码编写的。