题解 | #记负均正#
记负均正
http://www.nowcoder.com/practice/6abde6ffcc354ea1a8333836bd6876b8
思路
- 边输入边统计负数个数
- 边输入边统计正整数个数,注意0既不是正整数,也不是负整数,否则求平均会出问题
- 求平均时特殊处理除数为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;
}