题解 | #记负均正#
记负均正
https://www.nowcoder.com/practice/6abde6ffcc354ea1a8333836bd6876b8
解题思路
主要涉及数据类型和if判断的设定
题目要求筛选大于0的数(正数)求和再取平均值并保留一位小数,因此涉及正数部分的应该用浮点型的变量保存和计算
筛选小于0的数(负数)记录出现的次数,因此只用使用整型变量就可以记录
我是通过设置一个数组来记录输入的所有数据,然后通过for循环来遍历
详细的可以查看代码
#include <stdio.h> int main() { int a = 0; double arry[2000] = {0}, avg = 0, sum = 0; int i = 0, num = 0; scanf("%d", &a); while (scanf("%lf", &arry[i]) != EOF) { if (i >= a ) { break; } i++; } for (i = 0; i < a; i++) { if (arry[i] > 0) //正数部分 { sum += arry[i]; avg++; } if (arry[i]< 0)//负数部分 { num++; } } if(sum>0)//有时候可能会没有正数,这时候计算平均值会报错因此加一个判断 { avg = sum / avg; } printf("%d %.1f", num, avg); return 0; }