• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 行列を用いて場合分け)

C言語で行列を用いた場合分けの方法

このQ&Aのポイント
  • C言語で行列を用いて場合分けをする方法について困っています。
  • 具体的には、if文を使用して場合分けしたいのですがうまくいきません。
  • どなたかアドバイスをいただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tsunji
  • ベストアンサー率20% (196/958)
回答No.4

配列AAAがint(short)型しか扱わないのであれば、配列の宣言をdouble型からint(short)型に変更するとかした方がいいかも。

akasatana005
質問者

お礼

ありがとうございます! 無事に読み込んでもらえました!! ウェブで調べながらとりあえず回れば次へ、、、という進め方をしてきたので基本が疎かなんですね。 非常に助かりました。 ありがとうございます。

その他の回答 (6)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.7

既にツッコミ入っていますが……。 >char s[5]; >の様に直接添え字の数(5)を書いた場合、この場合は安全に使える添え字は0~4の5つになりますが >char s[] = "TEST"; >の様に直接添え字の数を書かなかった場合、安全に使える添え字いくつからいくつまでかわかりますか。 >って事だと思いますが。 って事です。 その辺りのメモリ管理についてはプログラマの責任。って言語ですので注意を払った方がいいでしょう。 メモリ管理を失敗しても、書かれた通りに愚直に実行しますよ。 少佐「この容器(10リットルガソリン携行缶・空)にこっちの容器(20リットルガソリン携行缶・満タン)から中身を移して、向こうの部隊へ持って行ってくれ。」 軍曹「(10リットルの容器に20リットル注いだらこぼれるけど…)イエッサー!上官の命令は絶対でアリマス!」     ………あふれてガソリンまみれ。(バッファオーバーランで破壊) 軍曹「完了したであります!!」 少佐「うむ。ご苦労。 次の作業まで一服したまえ。」 軍曹「ありがとうございます!!」     …引火して火傷で重症。(破壊の結果が表面化) 少佐「さて、次の作業だが… ん?どうした?しっかり動かんか!」 みたいな。 貴方が用意した char outputfilename[]= "input.dat"; は、 sprintf(outputfilename,"out-land%03d.dat",n); で納められる容量がありますか? で……ソースは削除されたようなので、今この質問(と回答)見ている人には意味不明ですねぇ。 # 後から見た時にナレッジデータベースの役割果たせないから外部に置くのはちょっと……。

akasatana005
質問者

お礼

ご指摘ありがとうございました。 今後その辺りにも配慮しながら書いていこうと思います。 データベースとして貢献しきれないのは申し訳ないと思いつつもアップロードしっぱなしという訳にも行かなかったのでやむを得ずこういう形を取らせて頂きました。 一応型が間違っているとifが上手くいかないってことだけは後から見た人にも伝わるかと思うのでご容赦下さい・・・ 繰り返しの質問に対しても親切にありがとうございました。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.6

>添字の数ですか・・・ >全く考えておりませんでした。小規模で回せたらどんどん大きくしていこうとしか考えておりませんでしたので #5でたずねられている >char s[]="TEST"; >とした時、s[]の添字はいくつまで安全に使えると思いますか? のは、 char s[5]; の様に直接添え字の数(5)を書いた場合、この場合は安全に使える添え字は0~4の5つになりますが char s[] = "TEST"; の様に直接添え字の数を書かなかった場合、安全に使える添え字いくつからいくつまでかわかりますか。 って事だと思いますが。

akasatana005
質問者

お礼

そうだったようですね。 親切にありがとうございます。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.5

> fprintf,scanfは自分で調べて使っていたので誤った解釈をしていたかもしれません 書式で指定している形式と変数の型を確認して下さい。 %dで浮動小数点の実数が表示(数字化)出来ますか? > snprintfを代わりに使いました > 他になにかおかしなところはあるでしょうか char s[]="TEST"; とした時、s[]の添字はいくつまで安全に使えると思いますか?

akasatana005
質問者

お礼

回答有り難うございます。 変数の型ですね。確かに最初に設定したきり余りきにしておりませんでした。 以後気をつけますね。 型が違うとこんなふうにコンパイルはできるけど期待通り動いてくれないということがあるのですね。 人間とは数字の認識の仕方が違うことを改めて感じました。 添字の数ですか・・・ 全く考えておりませんでした。小規模で回せたらどんどん大きくしていこうとしか考えておりませんでしたので 64bit 実メモリ4GB のPCでやっているのでhttp://okwave.jp/qa/q4670548.htmlを見る限りだと100億ぐらいに成るのですかね

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

指摘されているscanf()の書式がおかしいのと同じ理由でfprintf()の書式がおかしいところが多数。 まぁ、吹っ飛びはしないです。 期待した動作はしませんが。

akasatana005
質問者

補足

回答ありがとうございます。 fprintf,scanfは自分で調べて使っていたので誤った解釈をしていたかもしれません。 調べなおしても今ひとつ何がおかしいのかわからないのでこちらも具体的に指摘して頂けると幸いです。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

とりあえず, scanf が 1か所おかしい. あと, sprintf でオーバーランしてる.

akasatana005
質問者

補足

見て頂きありがとうございます。 今までバッファオーバーフローというものを考えたことがなかったのですが snprintfを代わりに使いました 他になにかおかしなところはあるでしょうか

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

とりあえず ・コンパイルできて同じ問題が発生するプログラム ・そのプログラムで問題が発生するデータ は出せませんか?

akasatana005
質問者

補足

お手数おかけします。 後々削除できるようにアップロード形式にはなりますがこちらです https://docs.google.com/file/d/0B7R997Q5M1dHTXhkY09vQ0gzLW8/edit?usp=sharing よろしくお願い致します

関連するQ&A