ページ 11

C言語のプログラムでネイピア数を極限より求める。

Posted: 2012年7月20日(金) 12:52
by tomo
お初です。プログラミング初心者なのですが、
ネイピア数を極限より求めるプログラム
を書いてみたのですが、
→→

/*pica3.c
ネイピア数を極限から求める。*/

#include <stdio.h>
#include <math.h>
main()

{
int n,e;

printf("nの値:");
scanf("%d",&n);

{
e=(1 + 1/n) ^n ;

}


printf("eの値(n=%d)");



}

このようにしても 
n の値を入力したときに

eの値:n=-2321029387 などど表示されるだけで
正しい結果が導けません。

このプログラムの解決法をよろしくお願いします。

Re: C言語のプログラムでネイピア数を極限より求める。

Posted: 2012年7月20日(金) 13:07
by nil
まずはじめに
printfの引数のとり方が正しくありません。
次にint型は整数型であるため実数を求める、という用途には適しません。

Re: C言語のプログラムでネイピア数を極限より求める。

Posted: 2012年7月20日(金) 13:32
by tomo
>涼雅さん:
すいません。C言語超初心者なので、
printf の引数の 取り方とかまったく分かりません。

int というのも 文字を定義するためにC言語では必須なものだと思っていたので・・・

申し訳ないですが できるだけ詳しくおねがいします。

Re: C言語のプログラムでネイピア数を極限より求める。

Posted: 2012年7月20日(金) 14:01
by non
C言語の初心者なら、すこし本でも読んで基本を勉強してもらわないと、ここで、詳しく全部説明できるものではありません。
例えば、このサイト
苦しんで覚えるC言語
http://9cguide.appspot.com/

Re: C言語のプログラムでネイピア数を極限より求める。

Posted: 2012年7月20日(金) 14:10
by 沖 滉均
あと気になるところは
e=(1 + 1/n) ^n ;

これでしょうかね。
n乗のつもりで書かれているのでしょうけども、C言語でn乗をそのように書くことはできません。
その辺も含めて、nonさんの書かれているサイトなどで勉強しましょう。

Re: C言語のプログラムでネイピア数を極限より求める。

Posted: 2012年7月20日(金) 17:44
by 初級者

コード:

/* pica3.c
 * ネイピア数を極限から求める。
 */

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

int main(void)
{
    int n;

    printf("nの値:");
    scanf("%d", &n);
    printf("eの値:%f(n=%d)\n", pow(1 + 1 / (double) n, (double) n), n);
    return 0;
}

Re: C言語のプログラムでネイピア数を極限より求める。

Posted: 2012年7月20日(金) 18:31
by かずま
tomo さんが書きました: このプログラムの解決法をよろしくお願いします。
解決方法を書きますので、下の質問に答えてください。

コード:

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

int main(void)
{
    double n, e;

    printf("n の値(4503599627370496がお勧め): ");
    scanf("%lf", &n);
    e = pow(1 + 1 / n, n);
    printf("e の値: %.16f (n = %.0f)\n", e, n);
    return 0;
}
1. double とは何か?
2. "%lf" とは何か?
3. pow() とは何か?
4. "%.16f" とは何か?
5. なぜ「4503599627370496がお勧め」なのか?