【2019暑期】【PAT乙级】1077 互评成绩计算 (20 分)

48 篇文章 0 订阅

复习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,不然中间几个值的小数也都没了,自然没有什么四舍五入了

太久没有写程序了,有些生疏,要多多联系,写的还不是很精简

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值