Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

long long 或者__int64位数据类型的scanf 和printf中对应的“%ld”会出错,改成“lld”就ok 了

Posted by tangguojun at 2017-09-24 11:34:47 on Problem 2115
之前一直在查找错误,一直没注意这个细节。"%ld"应该是对应long,longlong 应该是lld.
结果算对了,但是这个用“%ld”,输出不对。导致WA.
还有在各种编译器上和平台上的差异。里面还挺讲究的。学习了

变量定义	输出方式	gcc(mingw32)	g++(mingw32)	gcc(linux i386)	g++(linux i386)	MicrosoftVisual C++ 6.0
long long	“%lld”	错误	错误	正确	正确	无法编译
long long	“%I64d”	正确	正确	错误	错误	无法编译
__int64	“lld”	错误	错误	无法编译	无法编译	错误
__int64	“%I64d”	正确	正确	无法编译	无法编译	正确
long long	cout	非C++	正确	非C++	正确	无法编译
__int64	cout	非C++	正确	非C++	无法编译	无法编译
long long	printint64()	正确	正确	正确	正确	无法编译

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator