思路

  1. 边输入边统计负数个数
  2. 边输入边统计正整数个数,注意0既不是正整数,也不是负整数,否则求平均会出问题
  3. 求平均时特殊处理除数为0的情况

Answer

#include<stdio.h>

int main() {
    int cnt;
    int num[2000];
    int avr = 0;
    int negtive = 0;
    float sum = 0;
    scanf("%d", &cnt);
    for (int i = 0; i < cnt; i++) {
        scanf("%d", &num[i]);
        if (num[i] < 0) {
            negtive++;
        }
        if (num[i] > 0) {
            avr++;
            sum += num[i];
        }
    }
    //输出负数个数|所有正数平均值,结果保留一位小数
    if (avr == 0) {//考虑除数为0的情况
        printf("%d 0.0\n", negtive);
    } else {
        printf("%d %0.1f\n", negtive, sum / avr);
    }
    return 0;
}