質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

1回答

3953閲覧

e^xのマクローリン展開

yuri_0621

総合スコア2

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/08/01 08:49

C言語でe^ xのマクローリン展開のプログラムをつくりたいです。ここまでつくったんですが、
あと何を加えればうまく実行できますか?

#include <stdio.h>

long kaijo(long); //階乗計算関数のプロトタイプ宣言
long kaijo2(long); //階乗計算関数のプロトタイプ宣言(再帰関数)
double power(double, int); //べき乗計算関数のプロトタイプ宣言
double macro(int, int); //マクローリン展開を行う関数のプロトタイプ宣言

int main(void)
{
int x = ;

for( int i = 0; i < ; i++){ printf("%.20f\n", macro(x, i)); } return 0;

}

//マクローリン展開系系算用の関数
//引数:int x, int i
//返値:double
double macro(int x, int i)
{
long bunbo;
double bunshi;
double e_x = 0;

for( int j = 0; j <= i; j++){ bunbo = bunshi = } return e_x;

}

//階乗計算用関数
long kaijo(long n)
{
long f = 1L;
if( n > 0L){
for(long i = 1L; i <= n; i++){

} } return f;

}

//べき乗計算
//引数1:double x
//引数2:int n乗
//返値:double
double power(double x, int n)
{
double a = 1.0;
return a;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2020/08/01 09:00

ソースは、<code>で出てくる```と```の間に貼り付けて下さい。 あと、前出の質問→https://teratail.com/questions/281843 は、削除依頼を出して下さい。
episteme

2020/08/01 09:47 編集

> あと何を加えればうまく実行できますか? 訊くまでもないでしょう。空いてるとこ全部埋めればいい。 まずは コンパイルエラーがなくなること、 しかるのち x = 1 のとき 2.7182818... に近づくこと。 [余計なお世話] マクローリン:Maclaurin だから macro() じゃないね^^;
guest

回答1

0

[ご参考] 鵜呑みにされるのは本意ではないので全部再帰で。

C

1#include <stdio.h> 2 3// factorial: n! 4long f(long n) { return n == 0 ? 1 : n * f(n-1); } 5 6// power: x^n 7double p(double x, int n) { return n == 0 ? 1.0 : x * p(x, n-1); } 8 9// maclaurin-expansion : Σ(x^k)/k! where k = 0, 1, 2 ... n 10double m(double x, int n) { return n == 0 ? 1.0 : m(x, n-1) + p(x, n)/f(n); } 11 12int main() { 13 int x = 1; 14 int n = 20; 15 16 for (int i = 0; i < n; i++) { 17 printf("%2d: %.20f\n", i, m(x, i)); 18 } 19 return 0; 20}

投稿2020/08/01 11:14

編集2020/08/01 16:11
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問