题目描述
首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
0即不是正整数,也不是负数,不计入计算
数据范围:n €【1,2000】 ,输入的整数都满足 【-1000,1000】
输入描述:
本题有多组输入用例。
首先输入一个正整数n,
然后输入n个整数。
输出描述:
输出负数的个数,和所有正整数的平均值。
示例1
输入:
5
1 2 3 4 5
10
1 2 3 4 5 6 7 8 9 0
输出:
0 3.0
0 5.0
示例2
输入:
3
0 0 0
输出:
0 0.0
题解思路
- 遍历一次,分别记录负数和0的个数,以及所有正数的总和,求正数平均值即可
- 注意平均值输出一位小数,float 型 %.2f 就是小数2位, %.1f 就是小数1位
代码实现
#include <stdio.h>
int main()
{
int n, nums[2001], i;
while(scanf("%d", &n) != EOF) {
for(i = 0; i < n; ++i) {
scanf("%d", &nums[i]);
}
int nega_num = 0;
int zero_num = 0;
float sum = 0;
for(i = 0; i < n; ++i) {
if(nums[i] == 0) {
zero_num++;
}
else if(nums[i] < 0) {
nega_num++;
}
else {
sum += nums[i];
}
}
float average = sum / (n - zero_num - nega_num);
printf("%d %.1f\n", nega_num, average);
}
return 0;
}