プログラムの結果がnanになってしまいます。検索プログラムの結果がnanになってしまいます。1saitouプログラムの結果がnanになってしまいます。以下の計算プログラムを作成し、コンパイルはできたのですが、計算結果全てnanになってしまいます。どこが間違っているのか、どなたかご教授いただけますか?Cに関しては勉強してまだ2ヶ月足らずで、分からないことも多々あります。各パラメーターを入力してください。printf("基底関数の各パラメーターを入力してください。プログラムの結果がnanになってしまいます。kと1とを比べていない。kに1を代入している。2)このへんが正しくないんじゃないかなぁ、なんて思ったりしてます。バグのないプログラムはない。プログラムは思ったとおりには動かない。プログラムの結果がnanになってしまいます。関数内で初期化されていない変数の演算をしています。初期値を代入しないと、中身がどんな数字になるか分からないので注意してください。プログラムの結果がnanになってしまいます。プログラムの結果がnanになってしまいます。関数内で初期化されていない変数の演算をしています。初期値を代入しないと、中身がどんな数字になるか分からないので注意してください。プログラムの結果がnanになってしまいます。9年前h2so5さんの指摘の方が、深刻度が高いかも...。ある変数を計算に使うからには、「その前に」何かの値を「明示的に」入れておかないとダメ、ってことです。バグのないプログラムはない。プログラムは思ったとおりには動かない。プログラムの結果がnanになってしまいます。1か2かの判定などできません。プログラムの設計自体がおかしいです。プログラムの結果がnanになってしまいます。ようにすれば良いのでしょうか?sumは、そういうことです。何かの合計を入れようとしてるんでしょうから、まずはゼロでないとダメ、ってことです。他の変数は、どんな意味を持ってるかよくわからないので、パス。関数内のstaticでないローカル変数は、定義しただけでは中身は「ゴミ」です。特定の値(ゼロとか)が入っていることを期待してはダメ。バグのないプログラムはない。プログラムは思ったとおりには動かない。プログラムの結果がnanになってしまいます。1か2かの判定などできません。プログラムの設計自体がおかしいです。以下の式を計算したいです。※t,uに対してそれぞれ和を取る。k,lにかんしてはt,uの和を1〜3まで取る指標にしました。(1〜3それぞれにda1,da2,da3の値が対応して、r,uにそれぞれの場合の数値を代入できるかなと思いました。)p,q,r,sはコードで定義した通りです。ex11=ΣΣ(11|tu)に対応していて、ex11=(11|11)+(11|12)+(11|13)+(11|21)+(11|22)+(11|23)+(11|31)+(11|32)+(11|33)という風に9個の和でかかなければいけないので、for文でまとめて書こうと考えました。良く理解してなく、めちゃくちゃなプログラムになってしまい申し訳ありません。プログラムの結果がnanになってしまいます。一つずつつぶしていきましょうか。u;この時点で、rとuの値はゴミである(どんな値であるかはわからない)、というのは先に回答したとおりです。r*u/(r+u);こういう計算をしても、qもtも中身はゴミである、ということは理解できますか?バグのないプログラムはない。プログラムは思ったとおりには動かない。プログラムの結果がnanになってしまいます。私もおかしな所を列挙しますね。持っていますが、二つとも関数内で一度も使われていません。部分は計算結果に全く影響を及ぼしません。&d3);d1~d3に数値を代入していますが、これも全く使われていません。プログラムの結果がnanになってしまいます。一つずつつぶしていきましょうか。u;この時点で、rとuの値はゴミである(どんな値であるかはわからない)、というのは先に回答したとおりです。プログラムの結果がnanになってしまいます。a2,da3を、k、lのような指標を使い場合に分けて代入するとしたら、どのような方法を取れば良いのでしょうか?分岐はsaitouさんの方法でいいと思いますが、k,lの数値が決まっていません。数値も決まっていません。プログラムの結果がnanになってしまいます。私もおかしな所を列挙しますね。持っていますが、二つとも関数内で一度も使われていません。部分は計算結果に全く影響を及ぼしません。&d3);d1~d3に数値を代入していますが、これも全く使われていません。i,jを消せば、最後の1,1の部分は意味があるのでしょうか?すみません、d1〜d3はこれからexの値にかける係数を計算するときに必要なので、今は関係ありません。消してから投稿すべきでした。プログラムの結果がnanになってしまいます。a2,da3を、k、lのような指標を使い場合に分けて代入するとしたら、どのような方法を取れば良いのでしょうか?分岐はsaitouさんの方法でいいと思いますが、k,lの数値が決まっていません。数値も決まっていません。k,lにはそれぞれ1〜3の数字が入ります。全部のペアとしては、(k,l)=(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(2,3),(3,1),(3,2),(3,3)の9通りそれぞれの場合で式の計算を行い和を取ったものを最終的な値にしたいです。3;などとすれば良いということなのでしょうか?良く理解できてないようで申し訳ありません。プログラムの結果がnanになってしまいます。確証は持てませんが、saitouさんはおそらく根本的な誤解をされています。bという式は保持していません。saitouさんのコーディングを見ると、このような事が分かっていないような気がします。プログラムの結果がnanになってしまいます。確証は持てませんが、saitouさんはおそらく根本的な誤解をされています。bという式は保持していません。saitouさんのコーディングを見ると、このような事が分かっていないような気がします。...申し訳ありません、理解不足です。プログラムの結果がnanになってしまいます。(sum)に変えたら一応値はでるようになりました。ex11の値だけ、未だにnanです。ex23,ex32に関しても間違った値が計算されています。この事が何か解決につながらないでしょうか?解らないなりに色々考えたのですが、未だ解決はできません。プログラムの結果がnanになってしまいます。値を更新するにはどうすれば良いのでしょうか?その変数が必要になる直前に代入をしてください。プログラムの結果がnanになってしまいます。しなければなりません。}と書くこともできます。プログラムの結果がnanになってしまいます。いいかげんに誰か指摘してもいいように思うんですが...横槍ですが指摘自体はNo.2でboxさんが指摘、No.4で質問者様が直した報告をしていますよ。その後の皆さんのコードでは=のままなのでそれを指摘しているということであればその通りだと思います。プログラムの結果がnanになってしまいます。いいかげんに誰か指摘してもいいように思うんですが...横槍ですが指摘自体はNo.2でboxさんが指摘、No.4で質問者様が直した報告をしていますよ。その後の皆さんのコードでは=のままなのでそれを指摘しているということであればその通りだと思います。完全に見逃していました。ままなのはいただけないですよね。プログラムの結果がnanになってしまいます。9年前まず、ここら辺のソフトで基本的なことを理解されたほうが良いかも知れません。tml?site=n[基本法則]・基本的にifやforやwhileなど制御文がない限りプログラムの命令文は上から下へ1つづ順番に実行される。・代入文は、その時点での右辺が計算され左辺に代入される。それ以後の右辺値の変更には影響されない。値を変えたいなら別の命令文などで代入する必要がある。・C言語の場合、条件式中でも代入が可能。==と=は意味がぜんぜん違う。==は同じか比較するが、=は代入してしまう。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。プログラムの結果がnanになってしまいます。いいかげんに誰か指摘してもいいように思うんですが...横槍ですが指摘自体はNo.2でboxさんが指摘、No.4で質問者様が直した報告をしていますよ。その後の皆さんのコードでは=のままなのでそれを指摘しているということであればその通りだと思います。完全に見逃していました。ままなのはいただけないですよね。改めましょうよという意味でmaruさんの指摘を捉える」と。蛇足ついでに代入と比較の間違いを減らす方法を。固定値との比較をしたい場合、固定値を左辺に書くと、誤って代入の書式にした場合にコンパイル時エラーになります。xと誤った場合、1に代入はできないのでコンパイラでエラーにしてくれるそれ以外にもsoftyaさんが指摘されている基本的なところから少しずつ見直していったほうがよさそうですね。プログラムの結果がnanになってしまいます。蛇足ついでに代入と比較の間違いを減らす方法を。固定値との比較をしたい場合、固定値を左辺に書くと、誤って代入の書式にした場合にコンパイル時エラーになります。xと誤った場合、1に代入はできないのでコンパイラでエラーにしてくれるこんな古いテクニックを使わなくても最近のコンパイラはちゃんと警告を出してくれるので、わざわざ読みにくいコードを書く必要はありませんね。プログラムの結果がnanになってしまいます。}皆様の意見を参考にしつつ、自分の理解を本を読みながら訂正、関数部分を以上の様なコードに書き換えたら、正しい値が出るようになりました。皆様本当にご指導ありがとうございました。プログラムの結果がnanになってしまいます。9年前どうせなら全部のコードを見せてほしいなぁ、なんて思うのは私だけ?バグのないプログラムはない。プログラムは思ったとおりには動かない。プログラムの結果がnanになってしまいます。全部のコードを見せてほしいなぁ、なんて思うのは私だけ?すみません遅くなりました。こんな感じになりました。da3;/*値の入力*/printf("基底関数の各パラメーターを入力してください。プログラムの結果がnanになってしまいます。蛇足ついでに代入と比較の間違いを減らす方法を。固定値との比較をしたい場合、固定値を左辺に書くと、誤って代入の書式にした場合にコンパイル時エラーになります。xと誤った場合、1に代入はできないのでコンパイラでエラーにしてくれるこんな古いテクニックを使わなくても最近のコンパイラはちゃんと警告を出してくれるので、わざわざ読みにくいコードを書く必要はありませんね。4.1.2-48)で試したら特に警告は出ませんでした。こんな古いテクニックの紹介で申し訳ない限りです。プログラムの結果がnanになってしまいます。9年前いろんな環境を使っているとデフォルトではワーニングが出ない環境は結構有ります。あと、別に私は読みづらく感じませんよ。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。プログラムの結果がnanになってしまいます。9年前リテラルと比較するときしか使えないですからね。ひっくり返しても代入できてしまうときの主従関係はどうなるのでしょう。すべての主従関係が統一されていなければ、個人的には読みづらいと感じます。可読性を落とさずにコンパイルエラーにする方法もあります。プログラムの結果がnanになってしまいます。リテラルと比較するときしか使えないですからね。ひっくり返しても代入できてしまうときの主従関係はどうなるのでしょう。すべての主従関係が統一されていなければ、個人的には読みづらいと感じます。可読性を落とさずにコンパイルエラーにする方法もあります。*/この方法であれば可読性を落とさずに済みますね。ミクプラは自由にリンクできます。