Где ошибка в коде и как ее исправить?
что вы уже успели сделать для того, чтобы исправить ошибку самостоятельно, Валерия? тут, конечно, бывают мужики, которые не обломятся размотать вашу маляву, но чёткой братве, которая в крестах чалится не первый год, шквариться об такие большие телеги без какого-либо дополнительного информационного подогрева с вашей стороны западло.
а пока, исходя из предоставленной информации, в общем случае я бы предложил заменить устройство кодогенерации.
spoilerВсе переписа...
Замена1 (как сказали выше):CONTRY *a[100];
на
CONTRY* a = new CONTRY[100];
Замена2 в main начиная отсюда:int winter = a[0]->gettemp_winter();
  int summer = a[0]->gettemp_summer();
...
На
  int winter = a[0].gettemp_winter();
  int summer = a[0].gettemp_summer();
...и т.д.
У вас теперь указатель на массив а не массив указателей, так что все -> меняем на .