반응형
긴 인쇄 방법
PI 바로 옆에 있는 프로그램을 하고 있는데 오래 쓰려고 하는데 작동이 안 돼요.여기 코드가 있습니다.
#include<stdio.h>
#include<math.h>
typedef long long num;
main(){
num pi;
pi=0;
num e, n;
scanf("%d", &n);
for(e=0; 1;e++){
pi += ((pow((-1.0),e))/(2.0*e+1.0));
if(e%n==0)
printf("%15lld -> %1.16lld\n",e, 4*pi);
//printf("%lld\n",4*pi);
}
}
%lld
표준 C99 방식입니다만, 사용하고 있는 컴파일러(mingw32-gcc v4.6.0)에서는 동작하지 않습니다.이 컴파일러에서는 다음과 같은 작업을 수행할 수 있습니다.%I64d
그럼 이렇게 해 보세요.
if(e%n==0)printf("%15I64d -> %1.16I64d\n",e, 4*pi);
그리고.
scanf("%I64d", &n);
이 작업을 완전히 휴대할 수 있는 유일한 방법은 의 정의를 사용하는 것입니다.<inttypes.h>
.
이 경우 다음과 같습니다.
scanf("%"SCNd64"", &n);
//...
if(e%n==0)printf("%15"PRId64" -> %1.16"PRId64"\n",e, 4*pi);
정말 못생겼어...적어도 휴대성은 있습니다.
// acos(0.0) will return value of pi/2, inverse of cos(0) is pi/2
double pi = 2 * acos(0.0);
int n; // upto 6 digit
scanf("%d",&n); //precision with which you want the value of pi
printf("%.*lf\n",n,pi); // * will get replaced by n which is the required precision
- 당신의.
scanf()
사용할 필요가 있는 스테이트먼트%lld
너무. - 루프에 종료 조건이 없습니다.
식에 괄호가 너무 많고 공백이 너무 적습니다.
pi += pow(-1.0, e) / (2.0*e + 1.0);
- 루프의 첫 번째 반복에 1을 추가한 후 'pi' 값에 0을 추가해도 값은 크게 변경되지 않습니다.
- 다음과 같은 명시적인 반환 유형을 사용해야 합니다.
int
위해서main()
. - 대체적으로, 다음 사항을 지정하는 것이 최선입니다.
int main(void)
비록 그것이 다른 것보다 단정적인 진술은 아니지만, 그것은 그것의 주장을 무시한다. - 나는 C99에서 부여된 명시적 라이선스를 싫어한다.
main()
내가 직접 쓰지 말고return 0;
분명히 말하면.
이 알고리즘 전체가 의심스럽다고 생각합니다.long long
; 데이터 타입은 다음과 같습니다.long double
(와 함께)%Lf
를 위해scanf()
포맷, 그리고 아마%19.16Lf
를 위해printf()
포맷을 지정합니다.
우선 %d는 다음 중 하나의int
그렇게%1.16lld
%d은(는) 정수이므로 의미가 없습니다.
당신이 하는 typedef도 불필요합니다.앞의 typedef를 사용하면 훨씬 읽기 쉬운 코드를 만들 수 있습니다.
사용하고 싶은 것은 다음과 같은 타입입니다.double
, pi를 계산하고 다음을 사용합니다.%f
또는%1.16f
.
언급URL : https://stackoverflow.com/questions/6400180/how-to-printf-long-long
반응형
'source' 카테고리의 다른 글
Java에서 BigDecimal 변수 == 0인지 확인하는 방법 (0) | 2022.08.16 |
---|---|
루프 내에는 현재 루프되어 있는 일치를 취득하여 특정 이름의 참가자를 반환하는 함수가 있습니다.중복을 방지하는 방법 (0) | 2022.08.16 |
Nuxt with Typescript에서 루트 주입을 사용하여 사용자 지정 플러그인을 만드는 방법 (0) | 2022.08.16 |
전체 URL을 사용하여 VueJ의 구성 요소를 비동기적으로 가져오는 방법 (0) | 2022.08.16 |
Inertia.js Vue 파일 내의 Laravel의 .env 변수 접근 (0) | 2022.08.16 |