社区讨论

关于double和long double的讨论

P3887[GDOI2014] 世界杯参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo1npop5
此快照首次捕获于
2023/10/23 00:01
2 年前
此快照最后确认于
2023/11/03 00:44
2 年前
查看原帖
CPP
#include<iostream>
#include<algorithm>
using namespace std;
int a1[100000] = {};//守门员
int a2[100000] = {};//后卫
int a3[100000] = {};//中锋
int a4[100000] = {};//前锋
bool cmp(int a, int b) {
	return a > b;
}
int main() {
	int K, D, M, F;
	cin >> K >> D >> M >> F;
	for (int i = 0; i < K; i++)cin >> a1[i];
	for (int i = 0; i < D; i++)cin >> a2[i];
	for (int i = 0; i < M; i++)cin >> a3[i];
	for (int i = 0; i < F; i++)cin >> a4[i];
	sort(a1, a1 + K, cmp);
	sort(a2, a2 + D, cmp);
	sort(a3, a3 + M, cmp);
	sort(a4, a4 + F, cmp);
	int Q;
	cin >> Q;
	int i1 = 0, i2 = 0, i3 = 0, i4 = 0;
	for (int i = 0; i < Q; i++) {
		int A, B, C;
		long long cnt=0;//long double是错的
		cin >> A >> B >> C;
		cnt += a1[i1++];
		for (int j = 0; j < A; j++) cnt += a2[i2++];
		for (int j = 0; j < B; j++) cnt += a3[i3++];
		for (int j = 0; j < C; j++) cnt += a4[i4++];
		printf("%.2lf\n", (double)cnt/11);
	}
	return 0;
}
代码是能过的代码,但是如果将cnt的类型改为long double,在输出的时候直接输出long double/11就是全红

回复

2 条回复,欢迎继续交流。

正在加载回复...