2014-02-15 2 views
0

을 사용하여 숫자로 힘의 수를 출력하려면 다음 프로그램에서 힘을 32로 올리는 정확한 해결책을 찾을 수 없습니다. 나는 cygwin 터미널을 사용하고있다.cygwin 터미널

#include <stdio.h> 

main() 
{ 
    int base, expo; 

    long long value = 1; 
    printf("Enter base number and exponent respectively"); 
    scanf("%d%d", &base, &expo); 

    while (expo != 0) 
    { 
    value *= base; 
    --expo; 
    } 
    printf("Answer = %ll ", value); 

    return 0; 
} 

나는이 인상에 32

+2

'% ll '다음에'd' 또는'i'가 누락되었습니다.'ll'은 길이 지정자이고 유형은 여전히 ​​필요합니다. – Nabla

+0

OT : 적어도 int main (void)입니다. – alk

답변

3

2324294967296과 동일합니다. 이것은 long long 유형으로 쉽게 분개 할 수 있습니다. %lld 지정자를 사용하십시오.

0

의 값을 저장하기에 적합한 것이 어떤 데이터 유형을 알고에 도움이 원하는 것이 당신이 C와 C에 모두 작동하도록 설계 년대 GMP 라이브러리 https://gmplib.org/을 (사용할 수 ++ 컴파일러). 이 라이브러리를 사용하면 임의로 큰 숫자로 작업 할 수 있습니다 (최대 값은 컴퓨터의 메모리와 하드웨어 아키텍처에 의해서만 제한됩니다).

편집 : baseexpolong long 유형에 맞는 것을 산출한다고 예상하면 다른 답변이 도움이됩니다. 그러나 코드 조각이 baseexpo에 대한 유효성 검사를하지 않았으므로 더 큰 숫자를 나타내는 데 관심이 있다고 생각했습니다.

관련 문제