- 1 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 10:31:46 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ スレを勃てるまでもないC/C++の質問はここで 3 pc11.2ch.net/test/read.cgi/tech/1187521676/ スレを勃てるまでもないC/C++の質問はここで 4 pc11.2ch.net/test/read.cgi/tech/1221633708/ スレを勃てるまでもないC/C++の質問はここで 5 pc11.2ch.net/test/read.cgi/tech/1230516307/ スレを勃てるまでもないC/C++の質問はここで 6 pc11.2ch.net/test/read.cgi/tech/1231564903/ スレを勃てるまでもないC/C++の質問はここで 7 pc11.2ch.net/test/read.cgi/tech/1232983248/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/ スレを勃てるまでもないC/C++の質問はここで 10 pc12.2ch.net/test/read.cgi/tech/1242300936/ スレを勃てるまでもないC/C++の質問はここで 11 pc12.2ch.net/test/read.cgi/tech/1245059383/ スレを勃てるまでもないC/C++の質問はここで 12 pc12.2ch.net/test/read.cgi/tech/1248010352/ スレを勃てるまでもないC/C++の質問はここで 13 pc12.2ch.net/test/read.cgi/tech/1260842197/ スレを勃てるまでもないC/C++の質問はここで 14 pc12.2ch.net/test/read.cgi/tech/1269273471/
- 596 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:46:41 ]
- O(N)⇒一回の走査だけど、
一回の走査⇒O(N)じゃないからね。 一回の走査したあと他に何かする場合もあるからね。
- 597 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:48:01 ]
- >>596
別の配列に移してソートするんですね。
- 598 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:48:43 ]
- >>597
その通りです。
- 599 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:51:18 ]
- >>596
>一回の走査⇒O(N)じゃないからね。 え?
- 600 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:52:39 ]
- 一回の走査をするアルゴリズムの略にきまってるだろ。
- 601 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:55:00 ]
- >>598
意味ねえーーー
- 602 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 13:28:59 ]
- だからソートしたらOが変わるって
- 603 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 13:57:55 ]
- listでさ
あらかじめある程度の領域確保しといて、足りなくなったら適当な所から取って使う みたいなこと出来ない? placement new+仮想メモリ みたいな
- 604 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 14:05:16 ]
- >>603
そういうアロケーターを書いてあるそのままに作ればいいと思うよ
- 605 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 14:37:17 ]
- >>603
listにはそのためにアロケーターを指定できるようになっている。 boostにすぐ使えるpoolアロケータが用意されているからそれを使うのが楽 こんな感じ list<hoge,boost::fast_pool_alocator<hoge>> a;
- 606 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:24:26 ]
- >>596
二回の走査でもO(N) 従って > O(N)⇒一回の走査だけど、 は間違い。
- 607 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:46:54 ]
- >>605
まじで! ありがとう、使ってみる
- 608 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:48:31 ]
- 綴りミスってた fast_pool_allocatorだな。
- 609 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:55:34 ]
- Boostのアロケータか
使ってみたけどあまり変わらんぞ はっきり言ってあまり期待しない方がよい 標準のアロケータで通常は十分
- 610 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:05:22 ]
- そもそも標準で十分だと思ってるヤツ向けの機能じゃないし。
- 611 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:07:08 ]
- boostって実際使って仕事してる?
規約で禁止されてるところとか多そう。
- 612 名前:デフォルトの名無しさん [2010/06/12(土) 16:09:06 ]
- 必要があれば使うけど、基本的には使わない。
- 613 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:29:53 ]
- >>609
意外と標準のnewは速いから大きな差はないな。差がないのはアロケータはスレッドセーフにする必要があるのが要因のようだね。 プールアロケータのメリットはたくさんのオブジェクトを作成、破棄を繰り返すときにヒープの断片化を防ぐ。これはnewの速度低下に地味に効いてくる。 あと、オブジェクトの生成破棄再生成を繰り返すときの高速化ぐらいだね
- 614 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:54:36 ]
- 二つ以上のクラスで同じ関数使いまわしたいんだけど何かいい方法ない?
class CA { void hoge(); } class CB { void hoge(); } void CA::CB::hoge() { } こんなイメージ(勿論上はエラー) まあ二回書けばいいんだけど、中身が数十行あるからうざったい
- 615 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:57:30 ]
- >>614
継承
- 616 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:05:11 ]
- テンプレート関数でできそうな飢餓。
- 617 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:11:33 ]
- 普通に
class Choge { void hoge(); } class CA:public Choge { } class CB:public Choge { } void Choge::hoge() { } これでいけるか 合ってるよね?
- 618 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:12:19 ]
- is-a に出来ないんだったら絶対にpublic継承は使うなよ
場合によっちゃprivate継承が適切なケースもあるが なるべくならコンポジションだ
- 619 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:20:35 ]
- もうちょっとわかりやすく!
- 620 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:21:21 ]
- >>617
そのhoge()はなんでメンバ関数なんだ? そこをよく考えて設計するべき。
- 621 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:33:14 ]
- >>617
あってるよ。それでいい。
- 622 名前:614 mailto:sage [2010/06/12(土) 17:55:09 ]
- ありがとうございました!
- 623 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 19:06:49 ]
- std::istringstreamからstd::getline()やらread()やらでデータを取得していって、
さぁ残りの文字列を取得しようとstr()を呼んだら最初の初期化で指定したものが出てきました。 現在の読み込み位置以降の文字列を取得するスマートな方法は無いですか?
- 624 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 19:21:49 ]
- >>623
istreambuf_iteratorでもなんでもいいけど、 istringstreamから残り全部の文字を読み出すようなコードを書くのが手っ取り早いと思う。
- 625 名前:623 mailto:sage [2010/06/12(土) 20:11:54 ]
- >>624
どうもありがとうございます。大当たりです。 std::string str( ( std::istreambuf_iterator<char>(istr) ), std::istreambuf_iterator<char>() ); で期待した動作になりました。
- 626 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:22:26 ]
- c++の学習のためにゲームを作っているのですが、コードを書くごとにどんどんグローバル変数が増えていって困っています。
呼び出し関係のない2つの関数で共通する変数を扱う為にグローバル変数を使う、というパターンがほとんどなのですが、 こういう場合にグローバル変数をなるべく使わないで済ます方法はないでしょうか? たとえばカーソルを動かして選択肢を選ぶ処理を作るために、 「キーボードの入力を受け取ってカーソルの位置情報を動かす」関数と「位置情報からカーソルを描画する」関数があり、 カーソルの位置情報をグローバル変数にするという感じです。(上記の関数はどちらもゲームのメインループから呼び出しています)
- 627 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:28:05 ]
- >>626
「カーソル位置情報を動かす」オブジェクトが「カーソルを描画する」オブジェクトを参照できるようにしておく。
- 628 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:33:57 ]
- >>626
オブジェクトうんぬんじゃなくて、ただの構造化プログラミング的には キーボードの入力を引数にとり、カーソルの位置情報を返す関数 位置情報を引数にとり、カーソルを描画する関数 キーボードの入力を受け取って上記二つを呼び出す関数 に分けるとか そういう風にするだけでも、関数内でそれなりに完結するようになって大分良くなるんじゃないかな
- 629 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:34:08 ]
- カーソル位置情報を関数に参照渡しすれば?
- 630 名前:626 mailto:sage [2010/06/13(日) 10:44:34 ]
- ご回答ありがとうございます。
実は学習のしかたが偏っていたせいか、今まで参照がどんなものなのか知りませんでした。 今参考書をあたりつつ、関数の分け方も考えています。
- 631 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 11:20:34 ]
- listがremove()使ったほうがいいって言われるのはなんで?
一個だけ削除するにもremove使ったほうがいいの?
- 632 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 12:22:43 ]
- >>631
どこに書いてあった?
- 633 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 12:23:52 ]
- 普通の関数のremoveよりメンバ関数のremove使った方がいいって話と勘違いしてるとか?
- 634 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:47:08 ]
- >www.geocities.jp/ky_webid/cpp/library/003.html
>erase() はイテレータを使い、指定された要素を削除します。ただし、list の場合は要素の削除には、 remove() の方を使うべきです。 >remove() は、指定した値を持つ全ての要素を削除します。remove_if() は、削除する要素の条件を指定できるものですが、この辺りは使い方が難しいので説明を省きます。
- 635 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:06:42 ]
- ?removeは機能も違うし置き換えにはらんだろう。しかもO(N)じゃないのか?
- 636 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 17:42:48 ]
- >>634
そこ間違いが多いから参考にしないほうがいいよ
- 637 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:03:17 ]
- 高橋麻奈著の『やさしいC』を読み終えファイル入出力までは理解できた
次は何すればいい?C以外の言語を学んだ方が良い?
- 638 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 06:42:49 ]
- 次は自分で考える事を勉強する、かな
- 639 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 11:46:43 ]
- >>637
書け。
- 640 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/06/14(月) 13:13:06 ]
- >>637
つpc12.2ch.net/test/read.cgi/tech/1274827528/
- 641 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 13:31:03 ]
- ソースファイル落としたら.mの拡張子のファイルも入ってて良くわからないです
明日までにとりあえず動作させなければいけないんで 使い方だけ簡潔に教えていただければ助かります
- 642 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/06/14(月) 13:39:29 ]
- m4 かなあ?
- 643 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 13:45:10 ]
- mファイルと言うらしいのですが、matlabは触ったことがないので全然分からないのです…
特別なコンパイラとかいるのでしょうか?
- 644 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 13:46:38 ]
- matlabが必要になります。
- 645 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 16:14:58 ]
- オーバーフローアンダーフローを検出してくれる整数演算のライブラリってなんかありますか?
- 646 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 17:54:08 ]
- .mってObjective-Cじゃないんかね
- 647 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 18:39:43 ]
- >>645
SafeInt
- 648 名前:デフォルトの名無しさん [2010/06/14(月) 23:13:49 ]
- 初期化子でポインタは初期化できないのですか?
- 649 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 23:15:07 ]
- 初期化出来るでしょ
- 650 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 23:24:35 ]
- MATLAB なら Octave が free soft。
- 651 名前:デフォルトの名無しさん [2010/06/14(月) 23:55:01 ]
- int i;
sscanf(str, "%d", &i); これでstrにiを超える桁数の数が入ってたら 適当に丸めてくれるの? それとも桁あふれになるの?
- 652 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:29:53 ]
- struct Rec {
int type; /* 0なら四角、1なら丸*/ int yoko; /* 幅*/ int tate; /* 高さ*/ }; struct Cir { int type; /* 0なら四角、1なら丸*/ int r; /* 半径*/ }; struct Zukei { int type; /* 0なら四角、1なら丸*/ }; void RecCreate(void* hoge){ (Rec*)hoge->type=0; (Rec*)hoge->yoko=10; (Rec*)hoge->tate=5; } void CirCreate(void* hoge){ (Rec*)hoge->type=0; (Rec*)hoge->r=7; }
- 653 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:31:35 ]
- PrintMen(void* hoge){
switch((zukei*)hoge->type) case 0: sprintf("%d",(Rec*)hoge->yoko * (Rec*)hoge->tate); case 1: sprintf("%d",(Cir*)hoge->r * (Cir*)hoge->r * 3.14); } main{ zukei* x; RecCreate(x); (間にいろんな処理) PrintMen(x); } 先輩の作ったモジュール見たらこんな感じのコード出てきたんですが CreateTri抜ける〜PrintMen行くまでにyoko、tateの情報落ちないんでしょうか? zukeiへのポインタとしてしかxを宣言してない (mainモジュール中でzukei構造体分のサイズしかメモリ確保してない?)んで yoko、tateの値が入った領域って(間にいろんな処理)の際に 別の変数の為に使われちゃったりしないか気になるんですが。
- 654 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:39:29 ]
- >>653
すごい良くないコードだね。 危惧しているとおりに、違う型で上書きしなければ動くだろうけど。間違いを防止することができない良くないコードだね。
- 655 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:39:33 ]
- ひでぇコードだな
- 656 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:44:36 ]
- C++で仮想関数にすればまだ見られるようになりそうだが
- 657 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:52:37 ]
- 回覧板の角で頭ぶっ叩くレベル
- 658 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:53:30 ]
- Cでクラス・継承を実装するのは結構めんどくさいよね
- 659 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:00:39 ]
- >>658
各構造体をunionするしかないか。コンパイラのチェックが効かないから相当危険なコードになるのは間違いないが。
- 660 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:03:53 ]
- Cなら普通にある。キミらが使っているネットワークスタックも同様に書かれている。
- 661 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:08:53 ]
- >>660
IPのアドレス構造体なんかそうだけど。 type値で切り替えるのは有るけど普通じゃないと思う。APIなどのインターフェースとかぐらいだろ
- 662 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:20:29 ]
- xの先はどこで確保されているんだろう。
常識的に考えればRecCreate()で確保するのが関の山だと思うが。
- 663 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:41:46 ]
- >>652はLが無いけど、TLVな構造なんてどこでも使われてるだろ。
- 664 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:55:24 ]
- 型をコンパイラがチェックできなくなるんでお勧めできない方法だ
- 665 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:57:17 ]
- すみません。ポインタの変数の値が壊れる事に悩んでいます。
struct DATABOX { int no; bool chk; float *data_a, *data_b; } この構造体のインスタンス DATABOX dbox[100]; が有るのですが、 私がまだ理解できていないテンプレートを使った移植クラスの利用の為に DATABOX* tmp = spDAry[i]->mpObj; // 右の式がテンプレートらしく理解が・・ ここに tmp->data_a = dbox[i].data_a; とすると正常通過する時と、dbox[i].data_a側が 0.000000 になってしまう時が有ります。 (デバッグで手前では数値が確実に入っています。必ず0.000000以外の数値で確認済みです。) ここ以外 dbox[100] を触っている部分は全く無い処理に入ってから壊れるので ここしか考えられないのです。 ポインタの扱いに慣れておらず、 イコールして右の式が壊れるなんて初めてで、混乱しております。 申し訳ないですが、何がまずそうかできれば推測で構いませんので、助言頂けませんでしょうか
- 666 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:59:41 ]
- >>665
おそらくテンプレートは関係ない。 先ずは周辺のソースを全部出せ。
- 667 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:02:33 ]
- spDAry[i] の i が spDAry のサイズを超えてるんじゃないの?
んで、tmp が変な所指してしまってて、dbox か i かの中身を壊してるとか
- 668 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:55:23 ]
- >>664
お勧めの方法提示してから否定しろよ。
- 669 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:57:34 ]
- C++を使うのがおすすめですよ
- 670 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:58:12 ]
- 型をちゃんと指定するのがおすすめですよ
- 671 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:12:43 ]
- OpenCVもCで継承使ってる部分はvoid *だな
C++だと問題ないんだが
- 672 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:14:56 ]
- >>668
C++で継承を使うのがお勧めだろう。 今回の例だと class Zukei { public: virtual ~Zukri(){} virtual void PrintMen()=0; }; class Rec :public Zukei { int type; /* 0なら四角、1なら丸*/ int yoko; /* 幅*/ int tate; /* 高さ*/ public: virtual void PrintMen(){//略} }; class Cir :public Zukei 略 class Rect :public Zukei 略
- 673 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:15:01 ]
- 他言語から使う以外に手間をかけてまでわざわざCでやるメリットは有るのか?
- 674 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:15:52 ]
- >>672
typeは要らなかったな。こぴぺミスった
- 675 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:30:14 ]
- >>673
新規案件ならC++だろう。 既存コード使うならCを使わざるを得ないだろうけど
- 676 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:41:59 ]
- InitTest::InitTest(QString *p)
: m_str(QString("abc")), m_pstr(new QString("abc")) こんな初期化子の使い方ありだと思いますか?
- 677 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:48:17 ]
- pはどこに行ったの?
- 678 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:53:33 ]
- 何の問題ですか
- 679 名前:676 mailto:sage [2010/06/15(火) 22:57:12 ]
- >>677
pは消し忘れました 無視してください >>678 ポインタは初期化子で初期化するのか コンストラクタの中で初期化するのか気になっただけです
- 680 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 23:04:05 ]
- ぶっちゃけどっちでもたいした差はないよ
初期化子でnewしてもいいし 初期化子で0クリアして後でnewしてもいい
- 681 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 23:05:56 ]
- >コンストラクタの中で
そりゃ代入 QString * const m_pstr だったら後者は使えない
- 682 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 23:20:44 ]
- >>675
extern Cで十分じゃないか? 同僚にCしか使えないような奴がいるんなら別だけど。
- 683 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 10:44:26 ]
- C++にはプログラムを見難くする機能が満載である。
>>652の方がずーっとまし。
- 684 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 10:45:10 ]
- それはないわ
- 685 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 12:44:01 ]
- >>652 はほとんどC++だからね
どっちがましかと言えば、同じようなもんだけど C++の方がきれいに書けるだろうね
- 686 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 14:35:28 ]
- >>653
>zukeiへのポインタとしてしかxを宣言してない その通り。 >(mainモジュール中でzukei構造体分のサイズしかメモリ確保してない?) いや、Zukei構造体分の確保すらどこにもない。 >yoko、tateの値が入った領域って(間にいろんな処理)の際に >別の変数の為に使われちゃったりしないか気になるんですが。 (間にいろんな処理)の以前、RecCreate()でyoko, tateに代入してる時点で どこに書いてるのかわからない。 これが死なずに動いてるなら、それはただの偶然。 せめて、 main() { Rec x; RecCreate((void *)&x); ... } なら、動くだろうと思うけどさ。
- 687 名前:デフォルトの名無しさん [2010/06/16(水) 19:56:03 ]
- ある数字の各桁をそれぞれ別の変数(配列)に代入したいんですが、いい方法ありますか?
- 688 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 19:57:22 ]
- 10で割れ
- 689 名前:デフォルトの名無しさん [2010/06/16(水) 19:58:11 ]
- >>688
すみません、もう少し詳しくお願いします
- 690 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:01:53 ]
- ここまでヒントもらって分からないとなるとひょっとすると脳に障害があるかもしれんな
- 691 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:05:33 ]
- for(i = 0; n; i++, n /= 10) a[i] = n % 10;
- 692 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:08:35 ]
- 障害があったみたいです、ありがとうございました
- 693 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:31:37 ]
- いいってことよ
- 694 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 00:53:47 ]
- #include <iostream>
using namespace std; static const int N = 1024; static const double L = 1.0; int main(int argc,char** argv) { int i; double I[N],a[N],b[N]; double dx=L/N; cout << dx << endl; I[0]=1.0; for(i=0;i<=N;i++){ a[i]=1.0; b[i]=1.0; } cout << dx << endl; for(i=0;i<N;i++) I[i+1] = (1-a[i]*b[i]*dx)*I[i]; cout << dx << endl; return 0; } このコードで10,16と18行目でdxの値が変わるんですが17行目でdxを変えるような事はしてないと思うのですが なんで変わってしまうかを教えてください
- 695 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 00:56:01 ]
- I[i+1]
- 696 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 01:03:56 ]
- #include <iostream>
using namespace std; //static const int N = 1024; //static const double L = 1.0; int main(int argc,char** argv) { int i,N=1024; double I[N],a[N],b[N]; double L=1.0,dx=L/N; cout << dx << endl; I[0]=1.0; for(i=0;i<=N;i++){ a[i]=1.0; b[i]=1.0; } cout << dx << endl; for(i=0;i<N;i++) I[i+1] = (1-a[i]*b[i]*dx)*I[i]; cout << dx << endl; return 0; } こっちだったら問題なく一緒になるんですがI[i+1]のところが問題あるんですか?
|

|