矢印のところに「左のオペランドが、左辺値になっていません」と出るんですけど
「単位があっていない」ということでしょうか
struct constellation は int month; int day; char name[50];
で、star[]はmonth,day,nameにそれぞれ値が代入されてます

char detect(struct constellation *x)
{
int i;

for(i = 0; i <= 12; i++)
if(star[i].month == x->month && star[i].day < x->day)
x->name = star[i].name;             ←
else if(x->month == star[i+1].month && x->day < star[i+1].day)
x->name = star[i].name;             ←
}