题解 | #记负均正#
记负均正
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;
}
查看29道真题和解析