Вы можете создать «список», в котором цвет автомобиля является ключевым значением, и он подсчитывает, сколько автомобилей этого цвета у вас есть, и хранит автомобиль этого цвета.
Это выглядит примерно так:
у вас будет структура со следующими полями:
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
как псевдокод.