复习vector用法,四舍五入方法
vector
vector.insert() 在某一位置插入
vector.clear() 清空
vector.size() 获取大小
vector.push_back() 在最后插入一个值
sort(vector.begin(),vector.end()) 排序
vector<int> a(0) 默认值全为0
四舍五入方法
1) round() 在cmath中
2) (int)((sum + tea) / 2 + 0.5)
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
int n,m;
int main(){
cin >> n >> m;
int flag = n;
while(flag>0){
double tea, sum;
int ans;
tea = 0; sum = 0; ans = 0;
vector<double> stu(0);
for(int i=0; i<n; i++){
if(i==0){
int b;
cin >> b;
tea = b;
}
else{
int a;
cin >> a;
if(a>=0 && a<=m){
stu.push_back(a);
}
}
}
sort(stu.begin(),stu.end());
int k = stu.size();
for(int i=1; i<k-1; i++){
sum += stu[i];
}
sum = sum / (k-2);
ans = (int)((sum + tea) / 2 + 0.5);
cout << ans << endl;
flag = flag - 1;
}
return 0;
}
很蠢,这道题最开始的输入一直不对,后来发现是自己用了n 又把n给一直减,应该将n复制给别的值进行单独计数
第二个问题是用了四舍五入的函数却没四舍五入,要将最开始的变量都设成double,不然中间几个值的小数也都没了,自然没有什么四舍五入了
太久没有写程序了,有些生疏,要多多联系,写的还不是很精简