- 1 名前:デフォルトの名無しさん mailto:sage [2006/12/30(土) 20:07:25 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
- 185 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:06:30 ]
- >>184
void o(int ***mem) { int i; *mem=(int **)calloc(10, sizeof(int)); for(i=0; i<10; i++) (*mem)[i]=(int **)calloc(10, sizeof(int)); } int main() { int **mem; o(&mem);//この部分 }
- 186 名前:デフォルトの名無しさん [2007/01/28(日) 04:11:30 ]
- >>185
それはやったのですが、 o内で数値を代入して、 メイン側でその数値を使おうとすると反映されていないみたいでエラーが・・・。
- 187 名前:デフォルトの名無しさん [2007/01/28(日) 04:15:23 ]
- >>185
後コンパイル時に引数が異なるというエラーが。 間接参照のレベルが 'int ***' と 'int ****__w64 ' で異なっています。 仮引数および実引数と異なります。
- 188 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:16:17 ]
- >>186
だったらここだろ void o(int ***mem) { int i; *mem=(int **)calloc(10, sizeof(int *)); for(i=0; i<10; i++) (*mem)[i]=(int *)calloc(10, sizeof(int)); } ちなみにどんなエラーが出たのか明記しないとわからん
- 189 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 04:17:31 ]
- >>187
メインで int ***mem; とやってるんじゃないか?
- 190 名前:デフォルトの名無しさん [2007/01/28(日) 04:22:36 ]
- >>188
完走しました。 ありがとうございました。 >>189 それはなかったです。
- 191 名前:デフォルトの名無しさん mailto:age [2007/01/28(日) 06:52:30 ]
- フリーウェアで、
クラス図を作れるものってありますか?
- 192 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 08:24:55 ]
- C/C++の質問しろよ
umlmemo
- 193 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 08:29:20 ]
- doxygen
- 194 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:07:10 ]
- JUDE Community
- 195 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:33:04 ]
- >>192-194
ありがとうございました。 >C/C++の質問しろよ はい、すみません。
- 196 名前:デフォルトの名無しさん [2007/01/28(日) 17:09:42 ]
- void qsort ( void* base , size_t nmemb , size_t size, int(*compar)(const void *, const void *) )
↑のを自作で作りたいのですが、誰かサンプルを作っていただけないでしょうか? 初心者でスマソorz
- 197 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:14:38 ]
- www.google.co.jp/search?q=qsort.c
好きなのを持ってけ
- 198 名前:デフォルトの名無しさん [2007/01/28(日) 17:20:36 ]
- C++でゲーム制作プログラミング勉強しようと思ってるのですが
おススメの参考書を教えていただきたいです。 本屋に行ったのですが、何を買えばいいかわからずに退散してきましたorz 要望を挙げれば実際にゲーム制作しながら学べるような参考書。 RPGではなくアクションゲーに重きを置いた参考書を望んでいます。 プログラミング経験はJAVAを2年ほど、Perlを授業でかじった程度です。 よろしくお願いします
- 199 名前:デフォルトの名無しさん [2007/01/28(日) 17:21:54 ]
- >>197
どれが自作のやつかよく分かんないですorz ほんと無知でスマソ
- 200 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:40:28 ]
- ちみの云う「自作」の概念がよく分からないな。
チミが作ったわけじゃねーから、みんな他作だろう?
- 201 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:47:16 ]
- ワロタ
- 202 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 18:08:28 ]
- >>184
なんか見ていてクラクラしてくるコードだなぁ。 サイズが固定なら配列を使ったほうがいいんじゃないか。 >>196 正しい日本語で。 qsortの使用例 と qsortの実装例 のどっちが欲しいの? >>198 問題をしっかり切り分けよう。 ざっと乱暴に分けただけでも、 □ C++ □ OSのAPIのうち、ゲームで使うものについて □ ゲーム特有のアルゴリズム という3つに分けられる。 それぞれ独立した話なので、それぞれ別々に学んだほうがいい。 このスレで質問すべきなのは、 「Javaをある程度やった人にオススメのC++の教科書を教えてください」 ということだよ。 で、Javaを2年もやったのであれば、入門書的なのは無駄が多い。 まずは、↓のような簡単なものでいいので、CとC++の文法の概要を、軽く読む。 ttp://www5c.biglobe.ne.jp/~ecb/c/c00.html ttp://www5c.biglobe.ne.jp/~ecb/cpp/cpp00.html その上で、C++の有名な参考書群を読めば習得は速い。
- 203 名前:196 [2007/01/28(日) 18:21:24 ]
- >>202
すみません。実装例の方です
- 204 名前:198 [2007/01/28(日) 21:01:49 ]
- >>202
色々と詳しく教えていただきありがとうございます とりあえず教えていただいたサイトを見て基本的な所を理解してから 参考書を購入して勉強しようと思います。 ありがとうございました
- 205 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:02:45 ]
- >>203
GNUのglibcとか、 マイクロソフトならVC++に付属のCランタイムのソースコードとか。
- 206 名前:デフォルトの名無しさん [2007/01/28(日) 21:23:48 ]
- #include "DxLib.h"
struct CharaData{ int x; int y; int mae,hidari,migi,tama; }; struct CharaData jikidata; int jikinomuki=0; int statusboard=LoadGraph("StatusBoard.png"); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE);// ウインドウモードに変更 SetGraphMode(600,480,16);//ウィンドウの大きさ if(DxLib_Init()==-1) return(-1);//DXライブラリ初期化 WaitKey(); DxLib_End();//DXライブラリ終了 return(0);//終了 } エラーがでてないのにウィンドウが表示されません。 PCの動作が重くなっているので実行はされてると思うのですが・・・ 誰かわかる人いましたら解決策を教えてください OTL
- 207 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:37:23 ]
- ChangeWindowMode(TRUE);
SetGraphMode(600,480,16); はDXライブラリの関数だろ?だったら if(DxLib_Init()==-1) return(-1);//DXライブラリ初期化 の後に書くんじゃないか? 順序立てて考えて問題箇所を洗い出せ
- 208 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:41:39 ]
- int statusboard=LoadGraph("StatusBoard.png");
これはヤバいんじゃないか? WinMainよりも前に実行されるぞ。
- 209 名前:デフォルトの名無しさん [2007/01/29(月) 08:50:37 ]
- Choge hoge = new Choge();
と Choge hoge; は何が違うんでしょうか? ヒープ領域とスタック領域の違いでしょうか? どう使い分けたらいいでしょうか?
- 210 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 10:55:12 ]
- >>209
前者はdeleteする必要がある。 そのクラスが巨大でないのなら、後者で充分。 巨大であるとかクラスの特性上必要があるとかで前者を使うのなら、auto_ptrの使用を検討したほうがよりよい。
- 211 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 12:10:01 ]
- Choge* hoge = new Choge();
ではなくて Choge hoge = new Choge(); なのであれば、それはメモリリークしている可能性があるよ。 Choge hoge ; Choge* p = new Choge() ; hoge = p ; ただし、Choge::operator=(const Choge* p) が存在する、気持ち悪いクラスの場合だが。
- 212 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 13:14:13 ]
- >>211
>Choge hoge = new Choge(); > >なのであれば、それはメモリリークしている可能性があるよ。 そもそもコンパイル通らないんじゃないか?
- 213 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 15:27:32 ]
- Cについて質問です。
double型変数をfprintfで小数点以下の有効数字全てを表示したいのですが、 どのようにすればよいでしょうか。 今は%.20leとか適当な数字で表示させています。 できれば%lfの形式で表示したいのですが。
- 214 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 16:30:09 ]
- >>213
%.20gじゃダメ? 値が適当な範囲ならf形式で出るけど。
- 215 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 17:53:53 ]
- #define isupper(c) ( (c) >= 'A' && (c) <= 'Z' )
↑これ、パラメータが2箇所で評価しているんですけど、 問題ですか?普通に使えるような気がボクはするんですが...
- 216 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 18:05:21 ]
- >>215
ASCIIのようにアルファベットがリニアに並んでいる環境なら使えますね。 評価の副作用がある点に関しては、関数の引き数に副作用の起きるようなコードを書く香具師が阿呆なので ドキュメントに明示してあれば問題ないでしょう。
- 217 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 18:15:26 ]
- >>216
>ASCIIのようにアルファベットがリニアに並んでいる環境なら使えますね。 >評価の副作用がある点に関しては、関数の引き数に副作用の起きるようなコードを書く香具師が阿呆なので >ドキュメントに明示してあれば問題ないでしょう。 はい。ありがとうございます。 ついでで恐縮ですが、 副作用の起こる使い方ってどんな風な使い方ですか?
- 218 名前:215 mailto:sage [2007/01/29(月) 18:18:40 ]
- >>216-217
自己レスですみません。 isupper(c = getchar()) ↑こういうことですね?
- 219 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 18:25:15 ]
- >>218
こういうのもです。 isupper(c++);
- 220 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 19:21:07 ]
- >>219
そういうことですか。 ありがとうございました。
- 221 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:31:59 ]
- まったくどうでもいことだが、範囲比較は想定される数直線的に並べるべきだと思う。
具体的には 'A' <= (c) && (c) <='Z'
- 222 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 20:51:30 ]
- >>221
全くどうでもいいことだが、比較対象を左辺に置くのが一般的だと思う。 #いや、どちらでもいいけどさ。
- 223 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 21:00:33 ]
- >>216
> 評価の副作用がある点に関しては、関数の引き数に副作用の起きるようなコードを書く香具師が阿呆なので 違う! こういうのをマクロでやるのがアホ。 今時のコンパイラはインライン関数でも最適化されるので、副作用とか型チェックのないマクロを使う必要性はない。
- 224 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 21:26:36 ]
- >>223
↓こういったのはどうですか? arrは配列のポインタを設定。 #define ARR_SIZE(arr) ( sizeof(arr) / sizeof(arr[0]) )
- 225 名前:213 mailto:sage [2007/01/29(月) 21:30:24 ]
- >>214
上手く表示できました。 ありがとうございます。
- 226 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 21:35:04 ]
- >224
それはポインタ突っ込んでドツボにはまる香具師が必ず出てくるので有名なマクロだな。 しかし、コンパイル可能な副作用のある式を突っ込むのは難しくないか? まー、おいらはstd::vector使うからいーけどさ。
- 227 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 21:54:10 ]
- >>223
違う! #define isupper('A'<=((c)%220%156%91)) こうするのが正しいやり方だ!
- 228 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 21:56:37 ]
- >>224
template でゴニョゴニョすれば代わりになるものが作れるけど、 これに関しては移植性の高いマクロのほうが好きだな。
- 229 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 21:58:56 ]
- >>227
('A'<= 頬に突き刺さってて痛そうだよな
- 230 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:03:09 ]
- これじゃ、アッパーじゃなくてフックだな。
- 231 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:27:09 ]
- >>224>>227
C++ならboost::sizeはだめか?<boost/range/size.hpp>
- 232 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:32:38 ]
- >>231
boost::size じゃ、>>227 の速度性能には及ばんだろ、多分。 # メンテナンス性は最悪だけど。
- 233 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:36:08 ]
- boost::sizeもO2あたりの最適化を書けてやれば定数に収束するんでねーの、たぶん。
- 234 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:46:13 ]
- >>233
一回しか比較を実施しないロジックに対し速度で対抗しようとしたら あとはもうテーブルでも用意するぐらいしかないぞ。
- 235 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 22:56:53 ]
- 比較と剰余のどちらのコストが高いかは議論たり得る。
- 236 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 23:03:11 ]
- じゃ、おいらは
#define isupper(c) ((unsigned)((c)-'A')<26U)) で対抗しちゃる。
- 237 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 23:03:26 ]
- そうだな。一般的には剰余のほうが速いだろうけど、そうじゃない環境もあるかもね。
- 238 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 23:06:15 ]
- >>236
お、これなら環境を問わずに最速なんじゃね?
- 239 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 00:53:05 ]
- fgetcで読み込んだファイル(c)の文字を判定して印刷可能文字ならそのまま出力
それ以外なら空白を表示するプログラムを作っていたのですが while((c = fgetc(fp)) != EOF){ if(isprint(c) != 0){ buf[n] = c; n++; } else{ buf[n] = ' '; n++; } if(n % 16 == 0){ puts(buf); for(n = 16;i >= 0;n--){ buf[n] = ' '; } n = 0; } } この状態で出力すると16文字目の後にバグのような文字がでてきてしまいます。 いろいろ考えてみたのですが原因がわかりませんでした。どうにかしてこのバグを消す方法はないでしょうか? Win XPでBorlandを使用しています。
- 240 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 00:55:43 ]
- 連投失礼します。
for(n = 16;i >= 0;n--)ではなく for(n = 16;n >= 0;n--) でした。よろしくお願いしますm(--)m
- 241 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 01:01:38 ]
- 文字列の終端はナル文字をうめましょう。●4点
- 242 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 07:34:48 ]
- ぬるぽ
- 243 名前:がっ mailto:sage [2007/01/30(火) 07:39:54 ]
- ちんぽ
- 244 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 09:00:18 ]
- _,ィ、 ,r、__
,.ヘー'´ i `´/ `i_ /ヾ、 ヽ、 i / /ヽ _ィ、〉 > ´ ̄  ̄ ` く ,ゝ、 }、 ,>'´ 、 ヽ./`ヽ ┌! / / i 「`i ヽヽ ヽ } Y ! | | l i i l i ',__,.ゝ ,' | | | !l l | l l ! i ! | | | | j___j | |i i! |i! l ,.|‐T丁i! ハlj, --!`トlノ、|| | ! ! レ'i´ミj "i´ミ iヽ, i || _ | l |i iバ__ソ L__ソ /.ノ |! _ヽ) | | |l |、//// ' ///// |! |i ヽ) !ハ |! |,ゝ' ´ ̄ ̄ ` く レy'|! __,ノ レ'ヽiハ / \}'´ ̄ `ヽ、 ィ´ ̄/ ,べY Y`i__ \ 〉/ / , 、ヽ /_`ヽ\ \ ,ィ'ん、 / ! '´__ ヽ /´__,.` ', \ ァ'` `ヽ、/ー' /! __`ヾ! レ'´ _,. ! \ i /ー-ィ、 ィ__! ___`フ / ヽ二 /7 _i弋 / 辷j ! ヽ / / / / } j´ 〉 ヽ、 冫 ヽ__ュ_y\ / / /ヽヘ/え´ /
- 245 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 12:19:11 ]
- >>239
・putsの仕様を確認すべし。 ・下手な小細工しないでputcharとかfputcを使ったほうがいいぞ。 ・そのコードだと16文字に満たない分が出力されないぞ
- 246 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 16:13:41 ]
- >>239
> for(n = 16;n >= 0;n--) 17 回実行されるよね。
- 247 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 16:31:01 ]
- >>221-222
そのような「べき」も「一般的」もありません。 >>230 感服しました。
- 248 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 17:09:56 ]
- 数直線を意識しない奴は、素養がない。
- 249 名前:239 mailto:sage [2007/01/30(火) 19:23:13 ]
- >>241,245,246
助言ありがとうございます。 いろいろと試してみたらどうにか動きました。 お手数かけました。
- 250 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 19:23:52 ]
- なんか不安w
- 251 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 19:34:31 ]
- 適当に試行錯誤して動いたらOKという人は、C言語を使うべきではないね。
たまたま偶然、自分が見た範囲内で問題なく動いているように見えるだけ、というのは勘弁して欲しい。
- 252 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 21:58:00 ]
- >>248
自然言語で読みやすいように書かない香具師はカス。 Ex. if (NULL = fp) ...
- 253 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 07:54:30 ]
- >>252
それはコンパイルエラーだろ…常識で考えて。 if(NULL == fp)って書きたかったんだろうけどさ。 俺はいっつも右辺にリテラルを入れる派。
- 254 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 08:41:40 ]
- >>253
252の挙げている例は、 ==を間違って=にしてしまっても、コンパイラがエラーを出してくれるので安全だから、定数は左辺に書け という、コンパイラが警告を出さなかった時代の人達のクソッタレなコーディングルールを、 今だに実践しているダメな人のことを言っているのだと思うよ。
- 255 名前:デフォルトの名無しさん [2007/02/01(木) 22:04:13 ]
- C++勉強始めて一週間ほどの超初心者なんですが、
定数(const)ってしっかり覚えた方が良いでしょうか? それとも あ〜そんなのあったね。くらいで良いでしょうか? そりゃ覚えるにこした事は無いと思いますが、なんかイマイチ頭に入らなくて
- 256 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 22:05:31 ]
- constごときでそんなに苦労するの?
- 257 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 22:08:10 ]
- 覚えられなければ参考書とかグーグルで
すぐ答を引っ張り出せるようにはしておけ
- 258 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 22:18:30 ]
- ややこしいのもあるから
const char * const s = "ssssss"; とか class M { int i; public: void setInt(int i) { this->i = i; } int getInt() const { return i; } }; こういうのは後回しでもいいかもしれんね。
- 259 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 22:31:54 ]
- >>255
まだ、勉強始めて一週間ってことだったら、いますぐじゃなくてもいいとは思うけど。 でも、後からでもいいから const は絶対に覚えておけ。
- 260 名前:255 [2007/02/01(木) 23:01:13 ]
- 親切にお答えいただきありがとうございます。
定数は絶対に変えられない!程度に覚えておき、追々勉強していこうと思います
- 261 名前:デフォルトの名無しさん [2007/02/02(金) 00:20:10 ]
- c++でグローバル領域において
const double TEISU = 0.05; とかにして,VS2005でTEISUにマウスカーソルを合わせると 「static const double TEISU」 って表示されるんだけど,勝手にstaticを付けられてるってこと? int型だとこうはならないんですけど
- 262 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 01:09:58 ]
- そんな感じ。
C++の名前空間内(含グローバル空間)でのconstはexternを付けない限りstaticと同じ内部リンケージを持つ。 (特に整数型において)ヘッダで初期化して定数として使えるようにするため。
- 263 名前:デフォルトの名無しさん [2007/02/02(金) 11:26:29 ]
- あるn次元空間において、全ての点から遠くなるような点(最遠点)の効率のよい計算方法を探してます。
ただし、最遠点の範囲はそれぞれの軸で決まっていて、 例えば下図のような2次元空間上でこのように点があった場合、 赤点の位置を算出したいのです。 ttp://kjm.kir.jp/pc/?p=29115.gif ttp://kjm.kir.jp/pc/?p=29117.gif 上の場合は、点が偏っているために範囲ぎりぎりの点が選択されてる様子で、 下は周囲に点が偏っているので中央が選択されてる状態です。 このような点を探索する場合は、 全ての座標において点までの距離を計算し、最も遠くなるような座標を求める、 みたいな総当たりで調べていくしかないのでしょうか。 それともなにか効率のよいアルゴリズムはありますか?
- 264 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 13:42:23 ]
- >>263
点に接する円の径を最大化するように円の中心点を範囲内にとればいいのかな? 最急上昇法を使うのはどう? ローカルマキシマムに気をつけないといけないけど
- 265 名前:263 [2007/02/02(金) 15:24:35 ]
- >>264
つまりこういうことでしょうか? ttp://kjm.kir.jp/pc/?p=29123.gif ttp://kjm.kir.jp/pc/?p=29124.gif 3次元以上に使えるのかが分からないのですが、ひとまず調べてみようと思います。 回答本当にありがとうございます。
- 266 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 15:50:57 ]
- 点が疎な領域で風船(円)を膨らましていくイメージじゃないの?
3次元以上でも使える。
- 267 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 16:02:02 ]
- >>255
constがらみの文法は、わかりにくいですね。 他の人も言っているように、アンチョコを作りましょう。 頭の中に記憶しておく必要はないのです。 あやふやな記憶に頼ってコーディングをするのは、とても愚かな行為です。 (セキュリティのために、裸一貫でしか入退場できない場所での仕事は別だが・・・) constはちゃんと理解して使えるようにならないと、 他者の書いたコードやライブラリを使うことができません。 >>258 自分はtypedefを使って、なるべくわかりやすくするよ。 typedefを勝手にやるな! というルールのところもあるけどね。
- 268 名前:264 mailto:sage [2007/02/02(金) 16:56:55 ]
- >>265
言いたかった事は>>266 kjm.kir.jp/pc/?p=29126.gif kjm.kir.jp/pc/?p=29127.gif これはローカルマキシマムにはまった例 kjm.kir.jp/pc/?p=29128.gif
- 269 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 21:09:52 ]
- とりあえず適切に荒くマス目に区切って総当たりし、
その中から有望そうな部分についてマス目を細かくして総当たりし、 さらにその中から・・・ という具合に、ニュートン法みたいに繰り返していくのが無難そうよ。
- 270 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 22:21:45 ]
- 配列の宣言において、要素数にキーボードから入力した値を用いるにはどうすればよいでしょうか?
- 271 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 22:30:36 ]
- 配列は静的に確保しなきゃいけないから無理
vector使え
- 272 名前:デフォルトの名無しさん mailto:sage [2007/02/02(金) 22:51:59 ]
- >>270
int int_array[ #include "CON" ]; これでおk。
- 273 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:04:54 ]
- >>270
// for C(99) int num = キーボードから入力する関数(); AnyType_t array[num]; // for C++ // use std::vector. // for (regacy)C // try malloc() / free().
- 274 名前:270 mailto:sage [2007/02/03(土) 00:09:48 ]
- >>271,272
ありがとうございます。 説明不足で申し訳なかったのですが、 C++ではなく、Cで実現させたいのですが、 >>271のおっしゃる通り不可能なのでしょうか?
- 275 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:11:11 ]
- >>274
>273
- 276 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:22:00 ]
- >>273,275
ありがとうございます。 初心者なもので、具体的に教えていただきたいのですが、 float型で変数nを要素数とするxという配列を作りたいときは scanf("%d",&n); float x[n]; でよろしいのでしょうか? やってみたところ、 ここでは宣言はできない(関数 main ) 定数式が必要(関数 main ) とのエラーが float x[n]; の行に出てしまいました。 ご教授願います。
- 277 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:33:06 ]
- >>276
今時、8年も前の規格も満たせないような半端モノのCコンパイラではなく、真っ当なCコンパイラを使ってください。 それがいやなら、C++でも使ってください。
- 278 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:53:05 ]
- >277
すみません、フリーのBorland C++Compiler 5.5です。 月曜日に学校のVisual C++コンパイラでやってみます。
- 279 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 00:55:42 ]
- いや、一緒だから。
- 280 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 01:03:41 ]
- C99がまともにコンパイルできるコンパイラで身近なものはiccしかない。
部分的にサポートならgccでもよいが完全ではない。 こういう状態だから「C99は死んだ規格」と呼ばれる。
- 281 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 01:34:13 ]
- >>277
まともなコンパイラを教えてください
- 282 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 03:47:23 ]
- >>281
>280
- 283 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 13:17:31 ]
- >>280
>こういう状態だから「C99は死んだ規格」と呼ばれる。 でも、決して無駄にはならないハズ。 なぜならその屍をC++0xが乗り越えてくれるから。
- 284 名前:デフォルトの名無しさん mailto:sage [2007/02/03(土) 13:50:00 ]
- なーんだ結局C++に乗っかかるつもりかよ。やめてくれ。
ただでさえ複雑怪奇なC++の言語仕様をさらに複雑にする気か。 まあC++0xは文法を複雑にするというより、足りない部分を補う だけで、今の文法でも出来る事を焼き直すわけではないからな。
- 285 名前:263 [2007/02/03(土) 14:32:19 ]
- >>266-269
回答ありがとうございます。 ローカルマキシマムも図で説明しただいてよく分かりました。 ひとまず269の方法で試してみたいと思います。
|

|