- ベストアンサー
入力した数値を0~3乗するプログラム (C言語)
この前学校の授業でやり方がわからなかったことがあるので質問させていただきます。 scanfを使って入力した整数を0~3乗したものを出力するプログラムをかけ ちなみに7を入力すれば、 7^0=1,7^1=7,7^2=49,7^343 と出力されるようにしなさい という問題が出ました。 これは掛け算を使って作るのでしょうか? このプログラムの作り方と解答例をご教授願います。
- みんなの回答 (14)
- 専門家の回答
質問者が選んだベストアンサー
以下のようにしてください。 -------------------------------------------- #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) で動作確認済みです。
その他の回答 (13)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> これは掛け算を使って作るのでしょうか? それがいちばん簡単だし確実でしょうね。 int result = 1; for ( 4回くりかえす ) resultを出力 result = result * 入力値 }
補足
回答ありがとうございます。 ループのやり方がよくわからなかったのでさっき調べて作ってみたのですが、 コンパイルに失敗してしまいました。 プログラミングは初心者なので、めちゃくちゃ間違えているかもしれないのですが、 間違っている場所を指摘していただけないでしょうか? #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)
「pow」は使っても良い?
- lolinadeko
- ベストアンサー率20% (1/5)
まるまる教えるのは君のためにならないから、大まかな流れを書きます。 初期値に1を与えて、ループで表示、7の乗算を繰り返せばいいのではないでしょうか。
- 1
- 2
お礼
回答ありがとうございます。 現在自分の知っている簡単な言語のみでプログラムを組んでいただけたので、 今回ベストアンサーにさせていただきました。 ありがとうございました。 また、他にも回答してくださった皆様もありがとうございました。