题解 | 华为HJ105#记负均正II#
记负均正II
https://www.nowcoder.com/practice/64f6f222499c4c94b338e588592b6a62
描述
输入 n 个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾。
数据范围:1≤n≤50000 ,其中每个数都满足 ∣val∣≤10的6次方
输入描述:
输入任意个整数,每行输入一个。
输出描述:
输出负数个数以及所有非负数的平均值
示例1
输入:
-13 -4 -7
输出:
3 0.0
示例2
输入:
-12 1 2
输出:
1 1.5代码部分:
#include <stdio.h>
//以下是Senky的代码
int main() {
int num = 0;
int sum = 0;
int minus_count = 0;
int plus_count = 0;
while (~scanf("%d", &num)) {
if (num < 0) {
minus_count++;//记录负数个数
} else {
sum += num;
plus_count++;//记录非负数的个数
}
}
printf("%d\n", minus_count);
if (plus_count) printf("%.1f", 1.0*sum / plus_count);
else printf("0.0");
return 0;//编辑于2022/10/12
}
总结:
①没有难度,保持手感 ;
②当前帖子仅供自我精进、学习使用,有不足之处欢迎指正;
华为-HJ 文章被收录于专栏
机试的题解
