C言語の勉強をしている大学生です。
プログラミングをしている中で、質問が3つほど出てきました。
互いに関連しているのでまとめて質問させてください。
無限等比級数を計算するプログラムを作成しました。
これをコンパイルして実行すると、double型で定義しているのに
小数点以下7桁となってしまいます。
doubleは15桁ということなので、15桁で出力したいのです。
これが1つめの質問です。
<実行結果>
input n:10
1.500000
1.750000
1.875000
1.937500
1.968750
1.984375
1.992188
1.996094
1.998047
pow関数がmath.hに含まれているのかも定かではなく、
インターネットでmath.hというものがあると書いてあったので、
インクルードしてみましたが、これは適切でしょうか?
これが2つめの質問です。
最後になりますが、インターネットで多倍長ライブラリというものが
あるということを知りましたが、この使用方法がわかれば具体的な例を
挙げながら教えていただきたいと思います。
------------------------------------------------------------
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
int i;
double total;
printf("input n:");
scanf("%d",&n);
if (n<1){
printf("unable\n");
return 0;
}
for(i=1; i<n; i++){
total += 1.0 / pow(2.0,i);
printf("%f\n",total+1.0);
}
}
------------------------------------------------------------
No.1ベストアンサー
- 回答日時:
はじめ2つだけ.
1)printf関数は桁数等を制御する記法が存在します.
%fの部分をたとえば%1.15fとかくと,精度が15桁となります.
2)計算結果を見れば.合っていることがわかるのでは?
参考URL:http://wisdom.sakura.ne.jp/programming/c/c57.html
この回答への補足
お返事ありがとうございます。
フォーマット指定子というものがあったとは。
僕の持っている初心者向けの本には載ってませんでした。
解決しました。
No.2
- 回答日時:
1.
> printf("%f\n",total+1.0);
の部分を
< printf("%.15f\n",total+1.0);
とすれば良いでしょう。
2.
標準的な環境ではpow関数はmath.hで宣言されています。
3.
多倍長ライブラリはそのライブラリのマニュアルを参照しましょう。
標準仕様はないので、少なくとも具体的なライブラリの指定がなければ使い方を説明することは不可能です。
解決しました。ありがとうございます。
他にも二項分布などのちょっとしたプログラムを作っていて、
数学の勉強のためにもっと精度の高い結果が欲しいと思っていましたが、
15を30にしたら桁数が増えたので、多倍長ライブラリを使わなくても十分でした。
余力があれば、多倍長ライブラリも使ってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# (C言語)めちゃくちゃな値になってしまいます。 5 2022/08/13 11:55
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
error C2143: 構文エラー : ';'...
-
hit&bolwのプログラミングがで...
-
困ってます!Cプログラミングに...
-
万年カレンダーのC言語プログラ...
-
C言語での、年複利の計算方法...
-
(C言語)めちゃくちゃな値にな...
-
ヘロンの公式を作ったプルグラ...
-
ブラックジャック
-
コマンドプロンプトがすぐ消える
-
勝率をプログラムに
-
平均合計偏差値標準偏差の出し方
-
C言語
-
関数について
-
printf()文の書式
-
C言語で四則演算を使って10を作...
-
if文がコンパイルエラーを起こ...
-
scanfで正しい値を入力できない
-
DOS画面でテキストカーソルの位...
-
C言語で、「自然数nを入力し、n...
-
2進数の乗算と除算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報