アプリ版:「スタンプのみでお礼する」機能のリリースについて

この問題自分でやってみたんですが、
デバッグするとエラーになってしまいます。
C言語を独学で勉強しているもので、
どなたか教えてくださると助かります。

コンデンサと抵抗の回路がある.
10Vで充電されたコン
デンサ(0.01F)の両極
を100Ωの抵抗でつな
いだ場合,2秒後の電
圧をシミュレーション
(時間の刻み幅0.0001
秒=1.0e-4)により求めなさい。
C=0.01[F], R=100[Ω]




#include "stdafx.h"
#include"math.h"

void main()
{
double c,r=100,v=10;
double f,h,e;
long n;
double l,i, di, t;

c=0.01*f;
h=1.0e-4;


while(n<2000)
{
di = e * h / l;
e -= i * h / c;
i += di;
n++;
}
printf ("input initial voltage [V] = ");
scanf ("%lf", &e);
}

A 回答 (3件)

nが初期化されてないので、値は不定。



while(n<2000)

の時点でnが2000以上の不定な値になってたなら、ループしない。

それと、ループの後で数値入力しても意味ない。

あと、計算結果を表示も何もしてないので、プログラム自体が無意味。

この回答への補足

良かったら正しいプログラムを書いていただけると助かります。

補足日時:2013/07/04 13:53
    • good
    • 0

どういうエラーが出るんでしょうか?



>long n;
>while(n<2000)

nの値はwhile文にきた時の値っていくつでしょうか?
『値を設定していないローカル変数は不定値がとなっている』というのはご存じですが?

whileループに入るまでに値が正常なのはr、v、hだけです。
cは不明な値に0.01を掛けているので、結果はやっぱり不定な値と同様です。

最近のコンパイラなら「未初期化の変数を参照している」という類の「警告」が出るかと思いますが……。

で、それらが終わった後で
>printf ("input initial voltage [V] = ");
>scanf ("%lf", &e);
変数eに値を取り込んでも意味がありません。

この回答への補足

良かったら正しいプログラムを書いていただけませんか?

補足日時:2013/07/04 13:52
    • good
    • 0

初期化されてい変数があるのに、その変数を計算式で使っちゃダメでしょ。


とにかく全部の変数について初期化値を設定する。
    • good
    • 0

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