電子書籍の厳選無料作品が豊富!

次の実行例のように任意の数のべき乗を求めるプログラムをint型の関数beki(int x int y)を用いて作成する【関数bekiは引数xのy乗の値を返すものとする】方法は途中までがわかっていてどこをどう修正・追加すればいいのしょうか?
実行例
数値:2
何乗:8
2の8乗は256です。

#include<stdio.h>
#include<math.h>

int beki(int x, int y)
{
return pow(x, y);
}

int main()
{
int x, y,pow;
printf("数値:");
scanf("%d", &x);
printf("何乗:");
scanf("%d", &y);
printf("%dの%dは%dです。\n", x, y, pow,beki(x, y));
return 0;
}

質問者からの補足コメント

  • 「%dの%dは」の「%d」と「は」の間に乗が入ります

      補足日時:2017/02/20 13:30

A 回答 (3件)

mathライブラリのpowは、倍精度( double(double, double) ) で実装されていますので、変換が必要ですね。

でも、こんな関数くらい、自分で書いてもいいんじゃないかな。

#include<stdio.h>

int beki(int x, int y)
{
return (y==0) ? 1 : x * beki(x, y-1);
}

int main()
{
int x, y;
printf("数値:");
scanf("%d", &x);
printf("何乗:");
scanf("%d", &y);
printf("%dの%dは%dです。\n", x, y, beki(x, y));
return 0;
}
    • good
    • 0

int x, y,pow;


powって変数いらない

printf("%dの%dは%dです。\n", x, y, pow,beki(x, y));
じゃなくて
printf("%dの%dは%dです。\n", x, y, beki(x, y));


「これで出来ましたか?」
    • good
    • 0

求められた回答かどうか疑問ではありますが、これで動くのではないでしょうか? main()の中のpowは不要ですが。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!