求助printf输出long double类型
  • 板块学术版
  • 楼主vectorwyxSD省选加油
  • 当前回复18
  • 已保存回复18
  • 发布时间2020/5/18 12:19
  • 上次更新2023/11/7 02:13:33
查看原帖
求助printf输出long double类型
238408
vectorwyxSD省选加油楼主2020/5/18 12:19

RT,我做的是昨天CFdiv2的C1

一开始用的是printf("%.8Lf\n",ans);。在本地Dev-c++上运行结果是正确的,在洛谷IDE上运行结果也是正确的,但是在codeforces上提交就炸了/kk。因此蒟蒻很好奇用printf输出long double的正确姿势是什么QwQ

是我的提交记录,如果看不了下面是我的代码和一些必要的评测信息(read是快读函数我为了减小代码占用空间把它删了)

附:请不要说用cout或用double,我只是好奇用printf怎么输出long double。 qwq

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<algorithm>
#define ld long double
#define fo(i,x,y) for(register int i=x;i<=y;++i)
#define go(i,x,y) for(register int i=x;i>=y;--i)
using namespace std;

const ld phi=3.1415926535;

void work(){
	int n=read()*2;//read是快读函数
	/*if(n==0){
		puts("1.00000000");
		return;
	}*/
	ld hudu=phi/n;
	ld s=sin(hudu);
	//s*=2.0;
	//cout<<s<<endl;
	ld R=1.0/s;
	ld ans=sqrt(R*R-1);
	//ld ans=1.0/(2*sin(phi/2*n));
	//cout<<fixed<<setprecision(8)<<ans<<endl;
	printf("%.8Lf\n",ans);
	//puts("");
}
int main(){
	int T=read();
	while(T--){
		work();
	}
	return 0;
}
Author	        Problem		Lang		Verdict	Time			 
vectorwyx	1354C1 - 9	GNU C++11	Wrong answer on test 1	
2020/5/18 12:19
加载中...