2014-02-15 50 views
0

我無法找到在以下程序中找到2次加權32的確切解決方案。我正在使用cygwin終端。使用cygwin終端在c中打印數字的功率

#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; 
} 

我會想知道什麼數據類型的一些幫助將用於存儲2提高到32

+2

在'%ll'後面缺少'd'或'i','ll'只是長度說明符,類型仍然是需要的。 – Nabla

+0

OT:至少是'int main(void)'。 – alk

回答

3

232等於4294967296。這很容易被long long類型所詬病。使用%lld說明符。

0

的值是合適的,您可以使用GMP庫https://gmplib.org/(它的設計與C和C的工作都++編譯器)。有了這個庫,你可以使用任意大的數字(最大值僅受計算機內存和硬件架構的限制)。

編輯:如果您希望baseexpo產生適合long long類型的東西,那麼其他答案將提供幫助。但由於您的代碼片段沒有對baseexpo進行驗證,我認爲您可能有興趣代表更大的數字。