• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語の、sinxのマクローリン展開を教えて下さい)

C言語でsinxのマクローリン展開を求めるプログラムの作成方法

colderの回答

  • colder
  • ベストアンサー率43% (30/69)
回答No.1

tmp=1; // ここ違うんじゃないかい? tmp=x; // こうじゃね

noname#246158
質問者

お礼

助かりました。

関連するQ&A

  • C++を使ってのテイラー展開

    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; }

  • C言語でのsinxのマクローリン展開について

    課題で、「n 番目の値が、1*10^-8 よりも小さくなるまでの級数を求め任意のxに対するsinxの値をマクローリン展開を利用して近似せよ。」というものが出たので、プログラムを作成してみたのですが、間違った値が出力されてしまいます。以下にプログラムを示しますので、間違っている点の指摘をお願いします。 #include<stdio.h> int main(void) { long double a,b,c,d,n,x,ans,xx; ans = 0; a = c = d = 1; printf("xを入力"); scanf("%lf",&x); b = x; for(n = 1; d >= 1e-8; a *= (n - 1) * n , b *= xx){ xx = x * x; d = b / a; ans += (b * c)/a; c *= -1; n += 2; } printf("%.8f",ans); return 0; }

  • C言語 累乗の計算

    プログラミングの課題が出たのですが どうしても解けない問題が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); } 回答をお待ちしております。

  • C言語についてです。

    mのn乗を計算する関数power()を作成せよ. ただし,関数power()はm,nを引数とし, 戻り値としてmのn乗の値を返すものとする. m,nは,正整数とする.提出するプログラムには, 関数power()だけでなく,m,nを入力し, mのn乗を出力するメイン関数main()を含むものとする. main()は,power()の前に記述すること. また,power()のプロトタイプ宣言も記述する これについて、作ってみたのですが実行できません。 どこが間違ってるか教えてください。 #include<stdio.h> int power(int m, int n); int main() { int m,n; int a,sum; printf("整数を入力してください:"); scanf("%d",&m); printf("何乗しますか?"); sum = power(n,m); printf("%dの%d乗は%dです。\n",n,m,sum); } int power(int m, int n) { int a, kotae; kotae = 1; for(a=1; a<=n; a++) kotae = kotae * m; return kotae; }

  • C言語 プログラミングで行詰まりました…

    標準入力(キーボード)からi,jk,nの値を入力し、次の漸化式を計算し、X_0からX_nまで求めるプログラムを作成したいのですが、うまく表示されません。どかがおかしいのかご指摘お願いします。 <漸化式> X_n=(a+b)/X_(n-1) , X_0=c(n=0) ================================================================== #include<stdio.h> float f_X(int a,int b,float c) { float y; y=(a+b)/c; return y; } int main (void) { int number,i,j; float k,l,n,X; printf("i:"); scanf("%d", &i); printf("j:"); scanf("%d", &j); printf("k:"); scanf("%f", &k); printf("n:"); scanf("%f", &n); X=k; printf("X_0= %.6f\n",X); for(number=1;number<=n;number++) { l=f_X(i,j,X); printf("X_%d= %.6f \n",number,l); X=l; } return 0; } ===================================================================

  • C言語 繰り返しの問題

    C言語の初心者です。 キーボードから値を入力して、1から入力された値までの奇数の和を求めて出力するプログラムを作成します。以下のように組んでみましたが、全然うまくいきません。誰か教えていただけませんか? #include<stdio.h> int main(void) { int i,n,sum; sum=0; printf("入力値:",n); scanf("%d",&n); if(n<=0) { printf("\n合計値:0\n"); } else { printf("入力値:\n",n); for(i= 1; i<= n; i=i+2) { if(n%2=1) { sum=sum+i; } } } printf("\n合計値\n",sum); }

  • c言語のwhile文を使った計算で困っています、助けてくださいm・・m

    第X項から第Y項までの和を求めるプログラムを作りたいのですが、どうしてもうまくいきません、問題はこうなっています 初項1公差1の等差数列がある(An={1 2 3 4 5 ・・・n})。数値XとYを入力して、この数列におけるX項からY項までの数列の和を算出するプログラムを作成せよ。実行結果の例を以下に示す。 私はこの問いに対してこのようにプログラミングしました #include<stdio.h> void main() { int X; int Y;     int sum=0; printf("第X項から:"); scanf("%d",&X); printf("第Y項まで:"); scanf("%d",&Y); while(X<=Y) { sum=sum+X; X++;     } printf("初項1交差1の等差数列において、\n"); printf("第%d項から第%d項までの数列の和は%dです。",X,Y,sum); } こうすると最後のX項の値がY項より1大きく表示されてしまいます、どうしたらよろしいのでしょうか?どなたかわかる方返答をお願い致します。

  • C言語について質問です。

    ソートについて勉強していて、乱数列の要素数Nの値を変えていきバブルソートの交換回数、比較回数を数えるプログラムを作り、後は処理時間について調べたいのですが、処理時間を出力するのはどうやってやるのですか?教えてください。以下に乱数を生成するrand.cとバブルソートを行うbubblesort.cを記載します。これに処理時間を出力するようにしてもらいたいのですが、どうしたらいいですか?解説とソースファイルをよろしくお願いします。 rand.c #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 1000 int num[N]; int makeDataFile ( void ) { int i; FILE *fp; char s[100]; int num[N]; srand ( ( unsigned )time ( NULL ) ); fp = fopen ("rand1.txt", "w" ); if ( fp == NULL ) exit(1); for ( i = 0; i < N; i++ ){ fprintf ( fp, "%d\n", rand()%100 ); } fclose ( fp ); fp = fopen ( "rand1.txt", "r" ); if ( fp == NULL ) exit(1); while( fgets ( s, sizeof (s), fp ) ) { printf ( s ); } fclose ( fp ); return N; } bubblesort.c #include <stdio.h> #include <time.h> extern int makeDataFile ( void ); extern int num[]; void BubbleSort ( int x[] , int n ); void Show ( int x[] , int n ); int comp; int swap; void BubbleSort ( int x[] , int n ) { int i, j, tmp; for ( i = 0; i < n-1; i++ ) { for ( j = n-1; j > i; j-- ){ comp++; if ( x[i] > x[j] ){ swap++; tmp = x[j]; x[j] = x[i]; x[i]= tmp; Show ( x , n ); } } } } void Show ( int x[] , int n ) { while ( n-- ) printf ( "%d " , *x++ ); printf ( "\n" ); } int main(void) { int i, j, n , tmp; FILE *fp; comp = 0; swap = 0; n = makeDataFile(); fp = fopen ( "rand1.txt", "r" ); if ( fp == NULL ) return 1; for ( i = 0; i < n; i++ ){ fscanf ( fp, "%d", &(num[i] ) ); } fclose ( fp ); printf ( "\nbefore bubblesort\n" ); Show ( num , n ); printf ( "\n" ); printf ( "progress bubblesort\n" ); BubbleSort ( num , n ); printf ( "\n" ); printf ( "after bubblesort\n" ); Show ( num , n ); printf ( "\n" ); printf ( "count of comparisons : %d\n" , comp ); printf ( "count of swap : %d\n" , swap ); return 0; }

  • C言語の問題がわからないです。

    C言語のプログラムで、列数を自分で決めて、 (例)3列         ●(この行を最後として)   □● ●□● 上記のプログラムを作りたいのですが、 上手くいきません。途中まで作ったのですが、なかなか思うようにいかないです。どうすれば上記のようになりますでしょうか? #include <stdio.h> void disp(int x, int y); main() { int i,n; printf("表示する列:"); scanf("%d",&n); disp(3,3); for(i=1;i<=n;i++){ if(i%2==0){ disp(n-i,4); disp(i,2); } else{ disp(n-i,4); disp(i,1); } disp(1,3); } } void disp(int x, int y) { int i; for(i=0;i<x;i++){ if(y==1){ printf("●"); } else if(y==2){ printf("□"); } else if(y==3){ printf("\n"); } else{ printf("\0"); } } }

  • ベキ級数の和

    実数xと整数nを与えて下のベキ級数の和を求める関数を作りたいのですが…。 n Σ(x^i/i!) = 1 + (x/1!) + (x^2/2!) + (x^3/3!) + … + (x^n/n!) i=0 #include <stdio.h> #include <math.h> { float x; int n; printf("x->>"); scanf("%f",&x); printf("n->>"); scanf("%d",&n); のあとどのようなプログラムになるのでしょうか?よろしくおねがいします。