エラーが出てしまいます。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
narica

エラーが出てしまいます。

#1

投稿記事 by narica » 15年前

昨日に引き続き質問です。
取り組んでいる物:数字で分岐するアドベンチャー

昨日質問した問題と同様の問題なのですが、解決方法がわからないので質問させて頂きます。
上記のプログラムで実行し、1→1 と進行していくと Run-Time Check Failure #3 - The variable 'd' is being used without being initialized. というエラーが出てしまいます。

このエラーが出た場合は d が初期化されていないからエラーが出る。と教えて頂いたのですが、どこを初期化すればいいのかわかりません。


返答をお待ちしております。

シエル

Re:エラーが出てしまいます。

#2

投稿記事 by シエル » 15年前

else if(a==2){sentakud(d);}
↑ここでdを初期化しないで、関数に渡してるからだと。

だから何か値を入れておけばいいかと。

シエル

Re:エラーが出てしまいます。

#3

投稿記事 by シエル » 15年前

何か値を入れるだけでは駄目ですね。まあちゃんとした値を入れて下さい。

box

Re:エラーが出てしまいます。

#4

投稿記事 by box » 15年前

それはそうと、

> if (a==1,2,3){

これは何を意図しているのですか?

シエル

Re:エラーが出てしまいます。

#5

投稿記事 by シエル » 15年前

分岐によって、値が入らない変数があるのも良くないかな。

パコネコ

Re:エラーが出てしまいます。

#6

投稿記事 by パコネコ » 15年前

boxさんの聞いてるやつ私も気になります。
前にfor(;;a++,b++)
みたいなのみたことありますけどそれですか?
あれwhile文でしたっけ?
これは「もしくは」とかの意味があるんですか?
a!=0でもいい気がしますけど…意味を教えてもらってもかまいませんか?

narica

Re:エラーが出てしまいます。

#7

投稿記事 by narica » 15年前

シエルさん:ご返答ありがとうございます!
すいません、どの時点でなんという値を入れればいいのかいまいちわからないので、差し支えなければ例を教えてもらえないでしょうか?

boxさん.パコネコさん:ご返答ありがとうございます!
えっと・・・
特に意味はないのですが、これでも動くのかな~、と実験でやってみたのをそのままにしていたみたいです。
すいません。

へろりくしょん

Re:エラーが出てしまいます。

#8

投稿記事 by へろりくしょん » 15年前

>特に意味はないのですが、これでも動くのかな~、と実験でやってみたのをそのままにしていたみたいです。
すいません。


if(a == 1, 2, 3)....
一応動く事には動きますが、このコードはaと1もしくは2もしくは3と等しいと言う意味にはなりません。

カンマ演算子の役割は、カンマ演算子で区切られた式は必ず左から評価される事、そしてカンマ演算子が現れた時点で副作用が完了することの2つです。
そして、カンマ演算子が返す値は後に続く式の結果となります。

つまり、上記のコードは if(3)... と等価となります。

シエル

Re:エラーが出てしまいます。

#9

投稿記事 by シエル » 15年前

>>すいません、どの時点でなんという値を入れればいいのかいまいちわからないので、差し支えなければ例を教えてもらえないでしょうか?

とりあえず、全ての条件分岐に対応できるような組み方をしていただければ問題ありません。 画像

閉鎖

“C言語何でも質問掲示板” へ戻る