【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

はじめまして。
sinxの級数展開を7項まで取った場合と組み込み関数で求めたsinxの値の差を,0度から360度まで,プログラムを作成して求めよ、という問題があるのですが、300度まででとまってしまいます。
どなたか、わかる方がいまいたら、教えてください。
以下リストです。


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

const double pi=atan(1.0)*4;

double kaijyo(int n) {
double ret=1;
for (int i=2;i<=n;i++) {
ret*=i;
}
return ret;
}

double polSin(double theta,int order) {
int i;
double ret=theta;
for (i=1;i<order;i++) {
if (i%2==1) {
ret-=pow(theta,(i*2+1))/kaijyo(i*2+1);
}
else {
ret+=pow(theta,(i*2+1))/kaijyo(i*2+1);
}
}
return ret;
}


int main() {
int order=7;
double rad,theta,trueVal,polVal;
for (theta=0;theta<360;theta+=1.0) {
rad=theta/180*pi;
trueVal=sin(rad);
polVal=polSin(rad,order);
printf("%e\n",polVal-trueVal);

}
getch();
return 0;
}

A 回答 (2件)

300というのはどうやって確認しましたか


ファイルにリダイレクトして確認しないと画面がスクロールして確認できませんよ
または出力にカウンタも表示するようにするとか

この回答への補足

回答ありがとうございます。
すみません補足です。

300度というのは間違いで、300個目の答え(sinxの級数展開と組み込み関数で求めたsinxの値の差)が出て終了しています。

確認はDOS画面(コマンドプロンプトみたいな画面?)が出てきたのをエクセルに移して数えただけです。

補足日時:2008/03/14 11:59
    • good
    • 0

printf("theta=%f, %e\n", theta, polVal-trueVal);


などとしてthetaの値も表示してみましょう。

コマンドプロンプトを開き、バー上で右クリック、既定値を選択し、レイアウトタブを選択したら、画面バッファのサイズ(高さ)が300あたりになってるのではないですか?
これを大きくしてみましょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。きちんと表示されました。

途中から右上がりのグラフになったのですがこれで良いのでしょうか?

お礼日時:2008/03/16 19:41

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