• ベストアンサー

入力した数値を0~3乗するプログラム (C言語)

この前学校の授業でやり方がわからなかったことがあるので質問させていただきます。 scanfを使って入力した整数を0~3乗したものを出力するプログラムをかけ ちなみに7を入力すれば、 7^0=1,7^1=7,7^2=49,7^343 と出力されるようにしなさい という問題が出ました。 これは掛け算を使って作るのでしょうか? このプログラムの作り方と解答例をご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.13

以下のようにしてください。 -------------------------------------------- #include <stdio.h> int main(void) { int result = 1; int x; int i; printf("x="); scanf("%d",&x); printf("x=%d\n",x); for(i = 0; i < 4;i++) { printf("%d^%d=%d\n",x,i,result); result = result * x; } return (0); } ----------------------------------------- 7を入力したときの実行結果 x=7 x=7 7^0=1 7^1=7 7^2=49 7^3=343 -------------------------------------- CentOS release 5.6 (Final) gcc バージョン 4.1.2 20080704 (Red Hat 4.1.2-50) で動作確認済みです。

butamushi
質問者

お礼

回答ありがとうございます。 現在自分の知っている簡単な言語のみでプログラムを組んでいただけたので、 今回ベストアンサーにさせていただきました。 ありがとうございました。 また、他にも回答してくださった皆様もありがとうございました。

その他の回答 (13)

回答No.3

> これは掛け算を使って作るのでしょうか? それがいちばん簡単だし確実でしょうね。 int result = 1; for ( 4回くりかえす )  resultを出力  result = result * 入力値 }

butamushi
質問者

補足

回答ありがとうございます。 ループのやり方がよくわからなかったのでさっき調べて作ってみたのですが、 コンパイルに失敗してしまいました。 プログラミングは初心者なので、めちゃくちゃ間違えているかもしれないのですが、 間違っている場所を指摘していただけないでしょうか? #include <stdio.h> int main(void); { int result = 1; int x; int product; printf("x="); scanf("%d",&x); printf("x=%d\n",x); for(result = 1; result <4;result++) { printf("%d\n",result); result = result * x } return (0) } お暇なときでいいのでよろしくお願いします。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

「pow」は使っても良い?

回答No.1

まるまる教えるのは君のためにならないから、大まかな流れを書きます。 初期値に1を与えて、ループで表示、7の乗算を繰り返せばいいのではないでしょうか。

関連するQ&A