У меня нет представителя для редактирования вашего сообщения, но вот отформатированный код:
END {
if (lastpresstime < tothrs) {
diffhr = tothrs - lastpresstime
for (i=lastpresstime+1;i<=tothrs+1;i++) {
xpressinter[i]=diffhr
xpressrecords[i]=diffhr
xipress[i]=lastpress
xpressflag[i]="R"
printf("PRS xipress[%4d] =%6.1f\n",i,xipress[i]) > "ncdcfm3.prs"
printf(" xipress[%4d] =%6.1f%1s\n",i,xipress[i],xpressflag[i])
}
for (i=1;i<=tothrs+1;i++)
printf("PRS xipress[%4d] =%6.1f\n",i,xipress[i])
}
}
Обратите внимание, что в конце я добавил соответствующую скобку.
Я не вижу каких-либо внутренних проблем в коде, поэтому, как и jhartelt, я должен спросить - все ли переменные определены правильно? Из этого примера мы не можем сказать, как lastpresstime
, tothrs
и lastpress
получают их значения. В частности, если lastpress
нет, вы получите именно то поведение, которое вы описали. Обратите внимание, что если вы ошиблись, это будет неопределенная переменная, поэтому используйте значение по умолчанию, равное 0.
Что касается комментария Уильяма Перселла, также не должно быть никакой разницы в выводе xipress[i]
между тремя printfs (для lastpresstime<i
).