printf("The dam would produce %f megawatts at %d%% efficency", &work, EFINC2);
должно читаться следующим образом:
printf("The dam would produce %f megawatts at %d%% efficency", work, EFINC2);
&work
- указатель на работу, то есть double*
, но для printf
для вывода значения необходимо передать double
ине указательНа вашей платформе double*
, вероятно, отличается от double
, в результате чего последующие форматы printf
используют неверные данные.