2016-12-11 4 views
-3

ここでの問題は、次のコードのように結果を印刷しようとすると、結果が "0"という結果になります。しかし、変数xにpow(5,3)を代入すると、printf( "%dは結果です。\ n"、x);正しい結果が出力されます。なぜこうなった?戻り値はprintf()の書式設定では機能しません

#include <stdio.h> 

    int power(int base, int exp) { 
     int result = 1; 
     int i; 
     for (i = 0; i < exp; i++) { 
      result *= base; 
     } 
     return result; 
    } 

    int main() { 

     printf("%d is the result.\n", power(5,3)); 
     return 0; 
    } 
+1

問題を再現できません。 –

+2

あなたの編集では、関数は 'power'という名前ですが、' pow'を呼び出しています。 –

+0

は再生できませんhttp://ideone.com/ZqpaNv – Stargateur

答えて

3

あなたのプログラムを試してみると、私にとってはうってつけです。しかし、powは数学ライブラリのライブラリ関数で、doubleを返します。その名前は予約されています。それをmy_powのような名前に変更してください。

関連する問題