知识点数组思维
描述
对于给定的 n 个整数 a1,a2,⋯ ,an,统计并计算:
∙ ∙负整数的个数;
∙ ∙正整数的平均值。
输入描述:
第一行输入一个整数 n(1≦n≦2×103)代表整数的个数。
第二行输入 n 个整数 a1,a2,...,an(−103≦ai≦103)代表输入的整数。
输出描述:
先输出一个整数,代表负整数的个数;随后在同一行输出一个实数,代表正整数的平均值。
由于实数的计算存在误差,当误差的量级不超过 10−6 时,您的答案都将被接受。具体来说,设您的答案为 a ,标准答案为 b ,当且仅当 ∣a−b/max(1,∣b∣)≦10−6时,您的答案将被接受。
示例1
输入:
6
-1 3 -2 1 0 1
输出:
2 1.66666666667
示例2
输入:
3
0 0 0
输出:
0 0
备注:
本题输出要求已规范,允许细微误差(2025/01/16)。
这是错误,没通过,但不知道错在哪里,后边得再调一下。
cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n;
while(cin>>n){
int ans1=0;
int ans2=0,cnt2=0;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(x<0){
ans1++;//负数
}else if(x>0){
ans2+=x;//正数
cnt2++;
}
}
cout<<ans1<<" "<<fixed<<setprecision(1)<<(double)ans2/cnt2<<endl;//输出答案
}
return 0;
}