現在は、下のコードで稼動しています。

#include <stdio.h>
#include <stdlib.h>
#define MAX(a,b) a>b?a:b
#define MIN(a,b) a<b?a:b
int main(void) {
int p_max=0,p_min=0,p_cnt=0; double p_ave=0;
int m_max=0,m_min=0,m_cnt=0; double m_ave=0;
double a_ave=0, t_ave=0;
int i;

while (scanf("%d", &i) == 1) {
if (i > 0) {
if (p_cnt == 0) p_min = i;
p_max = MAX(p_max, i); p_min = MIN(p_min, i); ++p_cnt; p_ave += (i - p_ave) / p_cnt;
} else if (i < 0) {
if (m_cnt == 0) m_max = i;
m_max = MAX(m_max, i); m_min = MIN(m_min, i); ++m_cnt; m_ave += (i - m_ave) / m_cnt;
}
if (i != 0) {
t_ave += (i - t_ave) / (p_cnt + m_cnt);
a_ave += (abs(i) - a_ave) / (p_cnt + m_cnt);
}
}
printf("%d %d %d %d %.0f %0f %.0f %.0f %d\n",p_max,m_max,p_min,m_min,p_ave,m_ave,a_ave,t_ave,p_cnt+m_cnt);
return 0;
}