プロが教える店舗&オフィスのセキュリティ対策術

プログラミングの課題が出たのですが
どうしても解けない問題が2問あったのでここで質問させてもらいます。

尚、私が書けた範囲で書いているので
根本的な間違えがありましたらご指摘ください。


「□」の部分がわかりません。

(1)任意の整数nを入力して4^nを計算するプログラミングを完成させよ

#include <stdio.h>
main(){
int i,n,x;
i=1;x=1;
printf("n=");
schanf("%d",&n);
while(i<=□){
        x=4*□;
i++;
}
printf("Answer=%d\n",x);
}



(2)e^xをテーラー展開したときのx^nの項の係数を求めるプログラミングを書け。

#include <stdio.h>
main(){
int i,n;
float x;
printf("Input Nunber");
scanf("%d",&n);

x=0

for(i=1;i<=n;i++){
x=□*x;
}
x=1/□;
purintf("Answer%f\n",x);
}




回答をお待ちしております。

A 回答 (5件)

No.2およびNo.3のTort_Capaです。




>累乗をどのように表せばいいのでしょうか?

 printf()関数で出力する部分のことでしょうか?
 printf()関数では計算した結果の値を出力します。たとえば、(1)では、整数nに3を入力して4^3を計算する場合は、printf()関数で
  Answer=64
と出力されます。

 (2)の
  purintf("Answer%f\n",x);
というのは、
  printf("Answer%f\n",x);
でないとエラーが出ますね。
 書式を(1)と合わせるのであれば、
  printf("Answer=%f\n",x);
となっていたほうが良いと思います。
    • good
    • 0

> 累乗をどのように表せばいいのでしょうか?



4^n (nは0以上の整数)を例にすると
n=0のとき: 1
n=1のとき: 1×4
n=2のとき: 1×4×4
n=3のとき: 1×4×4×4
(以下続く)
ですから、1を初期値として、それに4をn回繰り返して掛ければいいだけです。ある処理をn回繰り返す方法はご存知ですね?

あとは重箱の隅つつき。

> main(){

まだ習っていないのかもしれませんが、main()の返り値型(int)を書く習慣をつけたほうがいいと思います。

> プログラミングを完成させよ
> プログラミングを書け

「プログラミング」=「プログラムを組むこと」なので、違和感のある表現です。「プログラムを完成させよ」「プログラムを書け」のほうが普通。

main()も「プログラミング」も教科書にそのように書かれているのであれば、私なら放り捨てます。
    • good
    • 1

No.2のTort_Capaです。

少し追加します。


(2)に関してですが、for文の前にある
  x=0
というのは誤りであると思います。正しくは、
  x=1;
でしょう。
    • good
    • 0
この回答へのお礼

訂正ありがとうございます。

お礼日時:2012/12/08 15:33

大学等の課題のようですから、ヒントだけ教えてあげましょう。




(1)に関しては、
 「任意の整数nを入力して」
となっていますが、
  n<0
の場合は、「□」に穴埋めするだけでは正しいAnswerを出力することができません。
  n≧0
の場合だけ考えて、「n<0の場合は解答不能」と記述するのが良いでしょう。

(2)に関しては、「e^xをテーラー展開したとき」というのは、
  e^x=1+x/1!+x^2/2!+x^3/3!+…+x^n/n!+…
のことでしょうから、x^nの項の係数を求めればよいのですが、この際注意しなければいけないのが、プログラム中の
  float x;
の「x」は、「e^x」や「x^n」の「x」とは異なるということです。


 あとは自分で考えてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。


(1),(2)もそうなのですが
累乗をどのように表せばいいのでしょうか?

お礼日時:2012/12/08 15:33

「自分で計算するならどう計算するか」を考える.

    • good
    • 0

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