Exile_Code @ 2023-05-24 19:26:38
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <cstdio>
#include <cstring>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <list>
#include <string>
#include <cmath>
#include <bitset>
int main() {
int n;
cin >> n;
if (n <= 150)
printf("%.1lf", n * 0.4463);
else if (n >= 151 && n <= 400)
printf("%.1lf", 150*0.4463+(n-150) * 0.4663);
else
printf("%.1lf", 150*0.4463+250*0.4663+(n-400) * 0.5663);
}
这个代码是可以过的,但为什么printf(%.1llf,....)却会出现全错呢??.1lf和.1llf有什么区别吗?
by Shadow_T @ 2023-05-24 19:50:16
你用的不是long long
by uid_310801 @ 2023-05-24 19:54:20
@Exile_Code 这里默认double类型,没有llf,需要long double 的话请使用%Lf
by Exile_Code @ 2023-05-24 20:22:29
对啊!明白了,谢谢指点!