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

C++を使って,sinとcosのテイラー展開をしたいのです。
プログラムを作ってはみたのですが,こんな感じでよろしいのでしょうか?

#include<stdio.h>
int main(void)
{
 int i,n;
 double xb,x,sinx=0,cosx=0,hu;
 xb=1.0;
 hu=1.0;
 printf("どこまで計算しますか?");
 scanf("%d",&n);
 printf("xはいくらですか?(1以下!)");
 scanf("%lf",&x);
 for(i=1;i<n;i++)
 {
 xb=xb*(x/i);
 if(i%2==0)
 { sinx=sinx+(hu*xb); hu=hu*(-1.0); }
 else
 { cosx=cosx+(hu*xb); hu=hu*(-1.0); }
 }
 if(i%2==0)
 { printf("答え:%f\n",sinx); }
 else
 { printf("答え:%f\n",cosx); }
 return 0;
}

A 回答 (3件)

#include<stdio.h>


int main(void)
{
int i,n;
double xb,x,sinx=0,cosx=1.0,hu;
xb=1.0;
hu=1.0;
printf("どこまで計算しますか?");
scanf("%d",&n);
printf("xはいくらですか?(1以下!)");
scanf("%lf",&x);
for(i=1;i<n;i++){
xb=xb*(x/i);
if(i%2!=0){
sinx=sinx+(hu*xb); hu=hu*(-1.0);
} else {
cosx=cosx+(hu*xb);
}
}
if(i%2==0)
{ printf("答えsinx:%10.9f\n",sinx); }
else
{ printf("答えcosx:%10.9f\n",cosx); }
return 0;
}
    • good
    • 0
この回答へのお礼

これです(^^)
ちゃんと答えになりました。

ありがとうございました。
助かりました(^^ゞ

お礼日時:2005/09/06 18:00

すみません。


どこまで計算しますかで、100
xはいくらですかで、 0.5
を入力すると 答え:-0.127626
となるのですが、この答えは、なにを意味しているのでしょうか?
sin(0.5)の値でしょうか?
    • good
    • 0
この回答へのお礼

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

ここでのxはラジアンで,sin(0.5)は0.479・・・になるみたいなんです(T_T)

う~ん。。。
どこが違うのやら・・・

お礼日時:2005/09/05 23:57

こんな感じとは?


期待する値が返ってきてるなら、いいんじゃないかしら。
    • good
    • 0
この回答へのお礼

回答ありがとうございます(^^)

Cがさっぱり分からない
 +
そもそも数学が分からない

こんな私ですのでちょっと(というかかなり)不安だったので(^_^;)
多分期待する値が返ってきていたはず・・・

お礼日時:2005/09/05 23:53

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