- 1 名前:デフォルトの名無しさん [2012/07/22(日) 23:08:24.46 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 >>2以降にあります。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
- 401 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:10:27.24 ]
- struct node {
int value; struct node * next; }; int main(void) { int i=0; struct node top; struct node *newNode,*tmp; /* top.next=NULL; うまくバグになる良いのだが */ top.value=0; for (i=0;i<10;i++) { newNode=(struct node *) malloc(sizeof(struct node)); newNode->next=top.next; newNode->value=i*3; top.next=newNode; } tmp=⊤ while(tmp!=NULL) { printf("%d\n",tmp->value); tmp=tmp->next; } return 0; } セグメンテーションフォルトを直したいんだけれど教えていただけないだろうか
- 402 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:14:35.86 ]
- ごめんなさい、レンプレ読んでませんでした>>401に加えて
[1] 授業単元:プログラミング [2] 問題文 「セグメンテーションフォルト」を見つける [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: 2011年8月10日16:00まで。
- 403 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:21:05.34 ]
- >>402
ttp://ideone.com/BWZKo 13行目でNULLをセットしてないと22行目のループでセグメンテーションフォルトになる
- 404 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:29:05.97 ]
- >>403
ありがとうございます whileループで思いっきりNULL判定使ってましたね・・・ 先生も気付きやすいようコメントで書いてくれてるというのに.. いやはや助かりました
- 405 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:34:34.45 ]
- つーかコメントも問題文の一部かよ
答え書いてあるようなものじゃないか
- 406 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 20:19:04.86 ]
- プログラミング以前に
なにか読み書きの中枢に異常があるんだろ それか注意力欠陥とか 文章を読みこむ能力が足りないとか、 根本的に脳の配線がおかしいとか、 キーボード打つまえにもっと能力向上の余地がある 逆に、無いと困る これでMAXとかいったら 学校じゃあなくてもっと別の保健所的な場所に赴いた方がいい
- 407 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 10:23:36.32 ]
- >>406
社会に出たらそんな連中ばかりだぞ
- 408 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 18:56:24.87 ]
- どんな社会に居るんだよ・・・
- 409 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 20:06:10.27 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):codepad.org/oJZv75HG プログラムを実行した時に10個のサイトが表示されるが、その中でも右上の黒枠が濃いラベルを持つサイトが一つある。 このラベル部分に他のラベルが重っているかどうかを判定するプログラムの作成。 [3] 環境 [3.1] OS:Vista [3.2] VC [3.3] 言語:C++ [4] 期限: 2012/08/07 [5] その他の制限: よろしくお願いします。
- 410 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 20:08:36.08 ]
- ずいぶんと力作じゃあねぇか
とくに glBegin(GL_LINE_LOOP); glVertex2f(LPx[i], LPy[i]); glVertex2f(LPx[i]+Lx[site[i]], LPy[i]); glVertex2f(LPx[i]+Lx[site[i]], LPy[i]+Ly); glVertex2f(LPx[i], LPy[i]+Ly); glEnd(); のトコロなんて あまりにも嬉しくて涙が出そうになった ttp://www.pro.or.jp/~fuji/mybooks/cdiag/ ここに投稿するといい ソースの殿堂に並ぶ、という栄誉を得られる
- 411 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 16:33:56.46 ]
- >>410
この程度で殿堂入りできるわけねーだろ
- 412 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 06:31:47.09 ]
- 今の時期は宿題少ないなぁ。
8月最終週になったらドバッと来るんだろうけど。
- 413 名前: ◆QZaw55cn4c mailto:sage [2012/08/10(金) 07:46:50.89 ]
- どうせやらないかんのならはやめにこのスレに晒してくれ。
- 414 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 15:44:50.19 ]
- 無職のオッサンは暇だなあ
- 415 名前:デフォルトの名無しさん [2012/08/11(土) 13:34:58.15 ]
- [1] 授業単元:プログラミング演習
[2] 問題文:1行ごとに1単語(英単語)が書かれたファイルがある。 このとき、このファイルの内容をソートして出力するプログラムを作成せよ。 ファイルの行数は不定(事前にわからない)とし、また上限を定めないこと。 ソートは昇順あるいは降順いずれにも対応できること。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:8月31日まで [5] その他の制限: ・ファイルの読み込みは1回のみとする。 ・Cライブラリ関数のqsortは利用してはならない。 ・単語を格納するデータ構造として配列は使用してはならない。 どうかよろしくお願いします。
- 416 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:38:47.12 ]
- windowsなら
まずは sort data.txt > data_sorted.txt とでも試してみろ
- 417 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 14:32:15.70 ]
- >>415
ファイルの行数が不定という事は、メモリに全部テキストを読み込めない 可能性も考慮しなければいけないって事? もしその場合はランファイルを用いたマージソートが必要になるけど メモリに収まると分かっているのなら簡単
- 418 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 15:14:53.12 ]
- ランファイルって何?
- 419 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 15:39:22.22 ]
- 外部ソート ラン でぐぐってみ
要するにマージソートの途中過程をファイルにして持っておくしか手がないわけだ その細かく分割されたそれ自体はソート済になっているファイルをランと呼ぶ それをマージする時にソートを崩さないようにマージして行き、済んだらマージ前の ランは消去 こういうアルゴリズム
- 420 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 15:55:06.58 ]
- www.ice.gunma-ct.ac.jp/~tsurumi/courses/Pro/2_4.pdf
これだとアルゴリズムがそっくり載ってるからこのままプログラムすればいいな
- 421 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:35:02.18 ]
- それだと今度はディスクに十分な空きがあることが条件になるだけだし
> ファイルの読み込みは1回のみ という制限に引っかかるんじゃね?という気がする。 だから単純に全部オンメモリでもいいと思うけど 期限はまだ先だし題意を確認してからのほうがいいだろ
- 422 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:43:02.79 ]
- >>421
まあそうなんだけどわざと意地悪してみた >ファイルの行数は不定(事前にわからない)とし、また上限を定めないこと。 この場合はリストでも使うかポインタ配列にしてポインタ配列をrealloc()するかだな ただしC++のstd::vectorと同じくrealloc()する度にポインタ配列のサイズを倍々にしていかないと O(1)でメモリが確保できなくなる >・ファイルの読み込みは1回のみとする。 だから先読みして行数をカウントするのは駄目だし >・Cライブラリ関数のqsortは利用してはならない。 自前のクイックソートでいいんでしょ
- 423 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:43:43.42 ]
- リストにするとソートが大変なんで結局 char *が入ったポインタ配列になるだろうな
- 424 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 17:51:52.72 ]
- >>415
toro.2ch.net/test/read.cgi/tech/1313183984/17 ideone.com/aaZlW オンメモリね。過去問で、今回の題意にあうかあまり検討してないのはごめんなさい。
- 425 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:07:12.79 ]
- >>424
こりゃまたひどいプログラムですねww
- 426 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 18:16:40.76 ]
- >>415
toro.2ch.net/test/read.cgi/tech/1313183984/338 ごめんなさい。 >ソートは昇順あるいは降順いずれにも対応できること。 が抜けていた。あと、同一単語が連続するとリークしてました。 >>425 どういうところが「ひどい」とお感じになったのか、よろしければぜひ。
- 427 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:32:21.62 ]
- >>426
>ソートは昇順あるいは降順いずれにも対応できること。 が抜けていた。あと、同一単語が連続するとリークしてました。 それから xmalloc()ってなんですかあ?マクロで無効にされてますけど 走らせてみたら木構造を表すのにデータの1/2ほどのメモリを使ってますよ
- 428 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:42:23.89 ]
- codepad.org/iUgdapWZ
約1GBのランダムなテキストファイルを作るプログラム これを食わせてソートしてみよう
- 429 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 18:53:37.75 ]
- >>427
>xmalloc()ってなんですかあ?マクロで無効にされてますけど #define xmalloc(x, y) malloc(x) #define xfree(x, y) free(x) #define xrealloc(x, y, z) realloc(x, y) #define xmallocdump() がすべてです。そう読み替えてくださいな。 >走らせてみたら木構造を表すのにデータの1/2ほどのメモリを使ってますよ 単語が短いとね、というか単語は短いものだしね。仮に木構造をマネージする構造体 >>426 の struct node が、sizeof(struct node) == 12 なら、 >木構造を表すのにデータの1/2ほどのメモリ というのは単語の平均長が24くらいになりますね。ちょっとありえないか。 どこぞのキャッチフレーズ「重複排除」とか不定長構造体をつかってみましょうか。
- 430 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:59:20.47 ]
- >>429
いや>>428のプログラムを走らせて言ってるんだけど 一行が1001文字ありますよ? 約1.4GBのメモリ食ってます
- 431 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 19:52:02.75 ]
- >>430
検証ありがとうございます。こちらでも >>428 で確かめました。しかし、 >約1.4GBのメモリ食ってます はこちらでは確認できませんでした。 17c17 < #define BUFFSIZE 3 /* >= 2 */ --- > #define BUFFSIZE 1024 /* >= 2 */ codepad.org/rm5Gl0qf で状況が変わる性質のものでしょうか?
- 432 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 19:54:09.41 ]
- 環境: PhenomIIx6(1100T?)/16G/Windows7-64bit/gcc4.3.2(cygwin)32bitアプリとしてコンパイル
- 433 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 19:57:54.63 ]
- 0.4なら誤差かも知れない
- 434 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 20:49:02.48 ]
- >>432
見栄張らなくていいのに(。´・д・) PenV850MHzなんでしょ それともCPU-Zのスクショマダァ?(・∀・ )っ/凵⌒☆チンチン
- 435 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 20:52:29.45 ]
- 簡単に見抜く方法があるぞ
SSE3のバイナリ吐かせて走らせてもらえばいい
- 436 名前: ◆QZaw55cn4c mailto:こんなのばかりがなぜか湧く..... [2012/08/11(土) 20:58:18.37 ]
- >>434
愛用していた Let's note ではあったのですが、残念なことに壊れてしまいました。 でも凋落著しいアムド屁ノムごときで見栄を張っているとかいわれても困惑するばかりなのですけれども。 >>435 ソースを codepad に貼り付けていただければ、その実行結果をお返ししますよ。
- 437 名前: ◆QZaw55cn4c mailto:sage [2012/08/12(日) 01:20:39.61 ]
- >>429
>「重複排除」とか不定長構造体 codepad.org/70zSBg25 >>428 で生成したデータでは重複排除は意味がありませんでした。
- 438 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:44:21.95 ]
- >愛用していた Let's note ではあったのですが、残念なことに壊れてしまいました。
じゃ今使っている現用機のCPU-Zのスクショ貼れるよな?
- 439 名前: ◆QZaw55cn4c mailto:sage [2012/08/12(日) 07:54:35.92 ]
- >>415
>>422 の方針でかきました。>>426 よりずいぶんとはやくなりました。 toro.2ch.net/test/read.cgi/tech/1313183984/351
- 440 名前: ◆QZaw55cn4c mailto:こんなのばかりがなぜか湧く..... [2012/08/12(日) 09:16:05.41 ]
- >>433
メモリ使用量の算出で、 malloc() での要求量を積算し、free() での解放は考えないタイプ(どうせ端したをfree()してもOSに返るわけでもなし) malloc() 自体が要求量よりも大目にあらかじめ確保しておくタイプ(PHK malloc() とか) realloc() = malloc() + memcpy() + free() なタイプ みたいなものであれば、40% ほど大目にでてきても仕方がないかもしれません。 >>431 で示しているとおり、アイデアリスティックな表現 #define BUFFSIZE 3 /* >= 2 */ のために realloc() が頻発してしまっているのが悪そうです。 そんな処理系があるかどうかはよくわかりません。
- 441 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:03:06.88 ]
- shell関数でsort呼べばいいんじゃね?
- 442 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:27:33.01 ]
- そんな夢の無いこと言うなよw
ま iinuxやらBSDのsortのソースは見ろ と勧めるが ttp://ftp.gnu.org/gnu/coreutils/ ttp://heirloom.sourceforge.net/tools.html
- 443 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:30:52.21 ]
- キッチン・トイレメーカー
- 444 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 15:33:49.41 ]
- やってみた
いろいろ手抜き #include <stdlib.h> #include <stdio.h> #include <limits.h> int main(int argc, char *argv[]) { char c[PATH_MAX+1]; switch(argc){ case 2: sprintf(c,"sort %s",argv[1]); break; case 3: sprintf(c,"sort %s %s",argv[1],argv[2]); break; default: exit(1); break; } system(c); }
- 445 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 15:35:27.11 ]
- これもうそのままsort使えば早いんじゃないかな
- 446 名前: ◆QZaw55cn4c mailto:sage [2012/08/12(日) 18:41:53.87 ]
- >>415
toro.2ch.net/test/read.cgi/tech/1313183984/358 >>423 無理してみましたが、線形リストのソートはどうあがいても遅くなってしまいました。昔うんこ呼ばわりされたのも仕方がない。
- 447 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:43:38.79 ]
- オンメモリが前提でよければ、stat呼んで、ファイルサイズ取得し、
必要メモリサイズを確保して一気読みしたら?
- 448 名前: ◆QZaw55cn4c mailto:こんなのばかりがなぜか湧く..... [2012/08/12(日) 21:07:46.89 ]
- >>447
stat(2)/fstat(3) が標準Cライブラリなら。となれば fseek()/ftell() か。 一揆読みのあと、一行の単位で区切らなければいけないのが、はてさて。
- 449 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 21:09:08.56 ]
- >>447
パイプ使って標準入力から流れてきたらどうすんの?
- 450 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/08/12(日) 21:20:11.33 ]
- >>449
>>415に >[2] 問題文:1行ごとに1単語(英単語)が書かれたファイルがある。 とありました。
- 451 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 21:20:50.69 ]
- 分かった
これは標準のsortが どれだけ洗練されているかを理解させるための実習なんだ
- 452 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 01:50:40.45 ]
- >>447-448
一気読みしたファイルの \n を \0 に置き換えながら char* 配列に文字列先頭アドレスを格納する char* 配列のサイズは一気読みしたファイルサイズの5〜10分の1くらいを確保して足りなくなったら拡張する >>449 を考慮しないなら一番早いかも知れないね
- 453 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 20:08:28.47 ]
- こんな課題にムキになんなよなぁ
速いのが欲しいならflash sortでもしろよO(n)だぞ
- 454 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:16:02.49 ]
- >>453
口だけ達者でコードは書けないのですね
- 455 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:21:53.23 ]
- >>454
そりゃflash sortとか書けねーよ, 金貰えるなら調べて頑張るかもしらねーけど.
- 456 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:36:30.54 ]
- >>455
コードひとつかけないのなら死ね
- 457 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:39:50.30 ]
- >>456
お前が金くれんなら書くけど.
- 458 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 22:07:23.89 ]
- Flash Sort調べてみたけどバケットソートと同じで使える条件が著しく限られてるんじゃないの?
- 459 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 22:21:20.39 ]
- ほほう
それで?
- 460 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 22:31:04.83 ]
- バケットソートみたいな整数制約とかは無いな
一様分布なめちゃくちゃ大量の実数とかで速いけど、定数項でかいので実用的にはアレなソート
- 461 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 22:40:42.60 ]
- >>458
もちろん、要素間に大小関係がある、というだけの前提のもとでの ソートの時間計算量はO(n log n)を下回らないだろう
- 462 名前:デフォルトの名無しさん mailto:sage [2012/08/14(火) 16:15:16.63 ]
- >>457
お金を貰ってコードを書くのではなく、 コードを書いてお金を貰うんだ
- 463 名前:デフォルトの名無しさん [2012/08/16(木) 23:31:24.32 ]
- 休み中の課題なのですが、わからないので教えて頂きたいです。
[1] 授業単元: C言語 [2] 問題文(含コード&リンク): ideone.com/vb7pZ [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: (2012年)8月17日 23時59分59秒まで
- 464 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 00:40:51.74 ]
- >>463
ideone.com/tnkGT
- 465 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 14:42:35.68 ]
- [1] 授業単元:C言語徹底入門
[2] 問題文(含コード&リンク):codepad.org/lgXR0ur1 次のプログラムは書式指定可能な10進16進変換表示を行う関数プログラムである。 関数の機能についてコメントで解説を入れ、同時にプログラムの流れを説明せよ。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C言語 [4] 期限: 2012年8月19日
- 466 名前:デフォルトの名無しさん [2012/08/17(金) 17:12:09.17 ]
-
[1] 授業単元:C言語 [2] 問題文:プレイフェア暗号の作成 参考:www.tamagaki.com/math/PlayfairCipher.html [3] 環境 [3.1] OS:Windows [3.2] コンパイラ:gcc [3.3] 言語: C言語 [4] 期限: 8月19日 よろしくお願いします!
- 467 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 22:52:41.04 ]
- >>466
どういうプログラムを求めてるんだよ, 問題文とかねえのか
- 468 名前:デフォルトの名無しさん [2012/08/17(金) 23:36:21.23 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク): ideone.com/kfh1t [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2012年8月18日18:00まで 関数定義の空欄の部分に void stradd(char A[], char B[]){ int i,j; j=0; printf("入力してください"); scanf("%s",A); i=0; while(A[i]!='\0'){ for(i=strlen-1; i>=0; i--){ j++; } B[i]='\0'; } printf("answer = %s\n" ,B); } と書いたのですが、間違っていると言われ、どこが間違っているのかわからないので 教えて頂きたいです。 お願いします。
- 469 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 23:56:04.07 ]
- >>468
ttp://ideone.com/2ZuhU
- 470 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 05:32:24.81 ]
- >>466
暗号文字が I/J になった時の説明が抜けているように思う。 必ずIでいいのかな。
- 471 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 12:07:06.14 ]
- >>466
ttp://ideone.com/A4gq7
- 472 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 06:24:59.43 ]
- 平文にXが来たらどうするのか、とか。
- 473 名前: ◆5bhYRM1Rdk [2012/08/19(日) 09:45:57.21 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク): ideone.com/rlR3n [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内 [5] 自分で考えて書いたつもりですがど素人なので読みにくいと思いますが、 お願いします。
- 474 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 10:10:34.93 ]
- Line36
scanf("%d\n",d); アドレス演算子が抜けてますよ
- 475 名前: ◆5bhYRM1Rdk [2012/08/19(日) 21:07:24.03 ]
- >>474
レスありがとうございます。演算子を付け加えたのですがファイルが開けません。 となるのですが、ファイルの指定の仕方はfp = fopen(a, "r");のようにして読み込む 事はできないのでしょうか?
- 476 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 21:55:09.30 ]
- >>475
入力が適切でないだけだろ "%s\n"なんだからちゃんと [入力ファイル名][改行][EOF] と入力してるか?
- 477 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 23:07:30.12 ]
- どなたか>>465お願いいたします。
- 478 名前:デフォルトの名無しさん [2012/08/19(日) 23:32:56.09 ]
- 考えてみましたが、理解が出来ないので教えて頂きたいです。
お願いします。 [1] 授業単元:C言語 [2] 問題文(含コード&リンク): ideone.com/hnMGh [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 2012年8月20日 12:00まで
- 479 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 00:38:51.17 ]
- readDataなんて忘れろ
消せ 削除しろ mainに全て納めろ
- 480 名前: ◆QZaw55cn4c mailto:sage [2012/08/20(月) 01:00:13.43 ]
- >>478
toro.2ch.net/test/read.cgi/tech/1313183984/401 >>479 馬鹿市ね
- 481 名前:デフォルトの名無しさん [2012/08/20(月) 11:31:22.78 ]
- 466です。返信が遅くなってしまいすみません。
平文にxがきてもそのまま変換します。 I/Jについてはどちらかで統一できるようにしたいです。 プログラムについてはCで作れれば自由という感じです。
- 482 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 15:04:08.70 ]
- 背景グレーに黒文字のページを作る奴の頭の中を覗いてみたい
- 483 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 19:48:58.90 ]
- >>482
2chなめてんのか
- 484 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 20:27:51.47 ]
- >>483
ダークグレーに訂正 >>466 のリンク先見てみ、読む気が失せるから
- 485 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 23:08:54.24 ]
- >>466 >>481
ideone.com/4007r 冗長になってもーた。 あとはまかせた。
- 486 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 02:15:47.04 ]
- [1] プログラミング言語
[3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio2010 ) [3.3] 言語: C++ int main(void){ double d2, s2; int i; s2 = 0.0; d2 = 1.0/10000000.0; for(i = 0; i < 10000000; i++){ s2 = s2 + d2; } printf("%f\n",s2); printf("%17.14f\n",s2); return 0; } 上記のプログラムを実行すると,コマンドプロンプトには 1.000000 0.999999999750170 と出力される. どちらも同じs2を出力しているのにもかかわらず, 表示させる桁数を変えるだけで出力内容が変わる理由, および,2行目の方で計算結果が 1.000000000000000 とならない理由を述べよ.
- 487 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 02:23:35.48 ]
- 計算機ちゃんの気まぐれだろjk
自分のPCくらいちゃんと手懐けておけよ
- 488 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 07:18:36.76 ]
- レスしないならウザいでください
わからないだけです
- 489 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 08:34:57.42 ]
- >>486
期日書いてないから宿題と思わないし、C++じゃなくてCだと思うけども。 1) 2進数は習いましたか? 2) 浮動小数点数の表現方法は習いましたか? それとも、あれかな。そのあたりを調べろっていう課題なのかね。
- 490 名前:486 mailto:sage [2012/08/21(火) 09:17:16.48 ]
- >>489
すみません 2012-08-24までです
- 491 名前:486 mailto:sage [2012/08/21(火) 09:23:09.22 ]
- >>489
1)習いました 2)習いました どうしてこうなるかを調べる課題です 打ち切り誤差 桁落ち 情報欠落 丸め誤差のいずれかだと思うのですが
- 492 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 11:47:27.75 ]
- >>491
なるほど。丸め誤差ですね。 e-words.jp/w/E4B8B8E38281E8AAA4E5B7AE.html 0.5 0.25 0.125 ... を組み合わせて足してできる小数でないと、 丸め誤差が生じます。 誤差をがある数を足しあわせたら、答えも誤差を含みます。 これが、答えの一方になります。 わかりづらいようでしたら、十進数の0.1を二進数に変換してみてください。 これが後段の答えです。 前段の答えは、 printf()が十進数でいうところの四捨五入を行う位置が違うからです。 私は国語が苦手なので、答えはそちらでまとめてくださいね。
- 493 名前:486 mailto:sage [2012/08/21(火) 11:51:58.96 ]
- >>492
詳しくありがとうございました!なんとかなりそうです
- 494 名前:デフォルトの名無しさん [2012/08/21(火) 14:55:59.45 ]
- [1] 授業単元:データベース概論(レポート内容がcプログラムを作成しなさいというものでしたので)
[2] 問題文(含コード&リンク): 1. CSVファイルからAccessデータベースを作るプログラム 2. 7桁の郵便番号を与えると,その郵便番号に対応する住所を表示するプログラム. 3. 住所の一部を文字列として与えると,その文字列を含む住所と郵便番号を表示するプログラム. www.mi.s.osakafu-u.ac.jp/~fujimoto/gakka/db/ の6月26日のものを参考にということです。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: すみませんわからないです [3.3] 言語: C [4] 期限: 8月31日まで データベースの講義ですのでここで質問してよいのかわかりませんがプログラムを作る課題でしたので、 分かる方ぜひおねがいします。
- 495 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 15:00:33.39 ]
- こりゃアレだな
ken_all.csv を使えっていうお告げだ
- 496 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 19:32:35.34 ]
- CからDB扱ったことないから、練習してみるか。週末ためしてみよう。
- 497 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 19:34:34.07 ]
- いや
ちがうだろコレ CでDBを作れっちゅー課題だ
- 498 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 19:46:50.11 ]
- そもそもCSVの仕様はどうするの?
RFC4180準拠なの? リンク先にある「CSVを楽に読みだすプログラム」みたいな馬鹿チョン仕様でいいの?
- 499 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 19:51:37.62 ]
- >>498
お前がRFC4180準拠で書ける訳ないんだから選択の余地無しだろ
- 500 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 19:53:46.02 ]
- 値にメタ文字を含むと爆発するおそれがありますって書いておけばいい
- 501 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 19:54:18.96 ]
- 郵便局のサイトにあるCSVを読むんだろ
それg読めればいいだけだ
- 502 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 19:56:53.79 ]
- >>499
え、お前かけないの
- 503 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/08/21(火) 19:56:56.74 ]
- >>494にあるURLに、材料は全部用意されてるよ。
- 504 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 20:02:01.89 ]
- エスケープ後もエスケープ以外のメタ文字が残るような
クソフォーマットの話はこのスレではどうでもいいと思います
- 505 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/08/21(火) 20:09:05.54 ]
- Access上のテーブルは、予め作っておくのかな?
それとも、テーブルもプログラムで作成しろということなのかな?
- 506 名前:デフォルトの名無しさん [2012/08/21(火) 20:24:07.47 ]
- /⌒ヽ⌒ヽ
Y 八 ヽ ( __//. ヽ,, ,) 丶1 八. !/ ζ, 八. j i 丿 、 j ,. -‐=≦=| 八 |=≧=‐- 、 /´ ! i 、 `ヽ .,v─ーv_ .{:::.: ,:. i し " i ' .:、 :.:::} ..,i(厂 _,,,从vy |::.:.: l::. ノ ( i i .::l . :.:.::| ..l ,zll^゙″ ゙ミ ∧:.:... i::, '~ヽ ! .::i ...:.:∧ ..《 il|′ フーv,_ !: :ヽ:. ::. . ..:. ,. | i .l .、.:.. . .:: .:ノ: :! _( "''''''::::. \《 ヽ .゙li ._¨''ーv,,_ { ノ| | | | ヽ :::::::::::::::::::::::::::::;;;;;,, ---‐'' "^~ ゙^ー、,,,¨ - ''¨.─ / | ;;-.;i \ ,/ ,;-/;;; /' '' ;;;X;, ヽ i' /_,,;-‐'' |;; ;i;;.. 〜 ;;| ''‐-;,,_\_ 'i i `i X〜 ;i;;; ;; (___'_っ
- 507 名前: ◆5bhYRM1Rdk [2012/08/21(火) 21:41:04.88 ]
- 3 : ◆5bhYRM1Rdk :2012/08/19(日) 09:45:57.21
[1] 授業単元:C言語 [2] 問題文(含コード&リンク):ideone.com/rYMeK [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 508 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 21:41:13.68 ]
- CSVファイルからAccessデータベースを作るプログラムってのは
1.create database ttp://support.microsoft.com/kb/149558 2.create table 3.insert into 基本的にこんな流れか
- 509 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 22:10:22.54 ]
- >>507
>strcpyするのに型が違うとコンパイルエラーが出たのですが、型は一緒だと私は思っているため、なぜ違うのかわかりません。 char と char* >辞書的に後ろ前をif文でどのように表現すればいいのか strcmp >文字列結合にstrcatを使うと思うのですが、結合の合間にスペースをいれる方法 前半の文字列とスペースを結合後、その文字列と後半の文字列を結合 >>476を無視してるけど今回のコードを見る限り理解してないよね
- 510 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 22:25:36.92 ]
- >>507
ttp://ideone.com/3MTzP
- 511 名前: ◆5bhYRM1Rdk [2012/08/21(火) 22:57:05.82 ]
- >>509
>>476すいません、ファイル名を入力して改行してCTRL+dを押しても ファイルが開けないってでるんですが、どういう意味でいっているのかわかりません。 >>510 分かりやすいプログラムありがとうございます。ただ関数内で使用しているfprintf,sprintf は一体何をしているんでしょうか?fprintfはファイル書き込みの時に使用するのではないんですか? sprintfは意味がわかりません・・・。それ以外は自分の理解不足、勘違いがよくわかりました。
- 512 名前: ◆5bhYRM1Rdk [2012/08/22(水) 00:55:45.30 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):ideone.com/eeKJB [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 513 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 01:49:26.51 ]
- >>512
ideone.com/evZS8
- 514 名前: ◆5bhYRM1Rdk [2012/08/22(水) 01:57:49.30 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):ideone.com/LGHF6 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 515 名前: ◆5bhYRM1Rdk [2012/08/22(水) 02:07:46.45 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):ideone.com/ZXLEr [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 516 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 03:21:00.95 ]
- >>515
ttp://ideone.com/Pucit
- 517 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 06:13:25.45 ]
- >>494
ttp://ideone.com/5cMkB とりあえずCSVファイルをODBCで読み込むサンプル
- 518 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 09:08:34.85 ]
- >>517
ttp://ideone.com/HrW7k とりあえずここまで
- 519 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 13:35:57.49 ]
- >>494
ttp://ideone.com/V8023 1.CSVファイルからAccessデータベースを作るプログラム
- 520 名前:デフォルトの名無しさん [2012/08/22(水) 13:58:49.70 ]
- >>517,518,519
とてもはやい解答ありがとうございます。 大変助かります。
- 521 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 14:15:22.90 ]
- [1] 授業単元:独学
[2] 問題文(含コード&リンク): ideone.com/jBgUV [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC++ 2010 [3.3] 言語: どちらでも可 [4] 期限: 無期限 [5] その他の制限: 特になし
- 522 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 14:23:09.41 ]
- >>494
ttp://ideone.com/Dw67o 2.7桁の郵便番号を与えると,その郵便番号に対応する住所を表示するプログラム. ttp://ideone.com/5ncU5 3.住所の一部を文字列として与えると,その文字列を含む住所と郵便番号を表示するプログラム. >>520 こちらも復習がてらやってます
- 523 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 15:16:25.85 ]
- >>521
それ普通にこっちで聞いていいと思うよw toro.2ch.net/test/read.cgi/tech/1341052801/ まず、typedef structを使うのはC言語の方で、C++ではtypedefは不要 ideone.com/cuuh4 C言語としてはそのソースはコンパイル出来ない ideone.com/RYaVs struct無しで変数宣言するなら「typedef struct _hoge2 {} _hoge2;」のように 後ろにtypedef名を書く必要がある 「struct _hoge2」の形式で変数宣言する必要がなければ「typedef struct {} _hoge2;」でいい ideone.com/7ABDE Cでどれを使うかというと人次第だけど typedef struct {} yyy; の形式が多いんじゃないかな structだけでなくunionもね 実装側の詳細を多少隠蔽出来るから ideone.com/TEs6W
- 524 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 15:26:30.72 ]
- >>521
あとtypedefの話だったから書いてなかったけど 「_」で始まる名前と「__」(_が2個)を含む名前は使わないようにね 詳細はC C++ 予約名とかでググって
- 525 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 16:36:33.56 ]
- >>524
ありがとうございます。 非常に参考になりました。 隠蔽についてはまだ理解仕切れてませんが、 これから学んでいきます。
- 526 名前: ◆t3V4YN9hBY [2012/08/23(木) 00:21:07.26 ]
- 【質問テンプレ】
[1] 授業単元: プログラミング演習 [2] 問題文 巡回セールスマン問題の厳密解を総当たり法で求めるプログラムを、再帰呼び出しを用いて作成せよ (例) 1 2 3 4 5 6 1 0 470 550 420 300 200 2 470 0 800 900 770 560 3 550 800 0 330 650 750 4 420 900 330 0 450 400 5 300 770 650 450 0 180 6 200 560 750 400 180 0 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual C++ 2010 [3.3] 言語:C++ [4] 期限: 8月30日 [5] その他の制限:なし プログラムが動けばいいと教授に言われました。 どうぞよろしくお願いいたします。
- 527 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 09:28:09.92 ]
- それ
ナニ行列だったっけ
- 528 名前: ◆t3V4YN9hBY [2012/08/23(木) 09:58:11.31 ]
- なに行列かはわかりませんが、
1→2→3→4→5→6 2230 といった結果を出すプログラムをつくるらしいのですが、 馬鹿だから俺には全くわからない。
- 529 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 10:04:41.06 ]
- 123456で全順列作って、合計距離を計算し、
最小値を出せば良いんじゃないの?
- 530 名前: ◆t3V4YN9hBY [2012/08/23(木) 10:45:44.49 ]
- 最小値は出さなくていいんです。全通りの合計距離がでれば
- 531 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 11:31:32.59 ]
- フツー
グラフ理論つったら 隣接行列使わね? だからそれナニ行列なのよ
- 532 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 11:54:32.80 ]
- どう見ても隣接行列だろw
- 533 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 12:00:20.80 ]
- >>530
えっ? 最小値を出さなくていいの? 意味が分からんよ 巡回セールスマンって普通は「全通りの中で最小距離のもの」を求める問題なんだけど
- 534 名前: ◆5bhYRM1Rdk [2012/08/23(木) 12:16:07.06 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):[1] 授業単元:C言語 [2] 問題文(含コード&リンク):ideone.com/1Z7RF [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 535 名前: ◆t3V4YN9hBY [2012/08/23(木) 12:20:58.04 ]
- すいません。馬鹿なので勘違いしてました。529さんのいっているとおりで
123456で全順列作って、合計距離を計算し、 最小値を出せば良いんじゃないの? ってことでよろしいです。よろしくお願いします。
- 536 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 12:23:44.52 ]
- >>534
ttp://ideone.com/idf6S
- 537 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 12:42:40.34 ]
- 巡回セールスマン問題はNP困難なのだからまともに解こうと思うと非常に時間が掛かる
工夫が必要 ja.wikipedia.org/wiki/%E5%B7%A1%E5%9B%9E%E3%82%BB%E3%83%BC%E3%83%AB%E3%82%B9%E3%83%9E%E3%83%B3%E5%95%8F%E9%A1%8C
- 538 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 12:51:50.38 ]
- >>526
ideone.com/mxZHW 528とは少し表示の仕方が逆順だが
- 539 名前: ◆t3V4YN9hBY [2012/08/23(木) 16:11:10.90 ]
- >>538
ありがとうございます。 6→5→4→3→2→1 の合計距離が違うと思うのですが・・・
- 540 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 16:28:25.01 ]
- 1→2→3→4→5→6→1 じゃね?
巡回セールスマン問題は出発地に戻ってくるところまでだし
- 541 名前: ◆t3V4YN9hBY [2012/08/23(木) 16:32:03.72 ]
- >>540
そうっすね^^じゃあ完成すね。ありがとうございました。 解読していきやす。
- 542 名前:538 mailto:sage [2012/08/23(木) 20:20:00.36 ]
- すまんねw
528 で始点への枝が書いてなかったから省略するもんかと思ってたw
- 543 名前: ◆5bhYRM1Rdk [2012/08/23(木) 23:25:10.39 ]
- >>516
>>536 分かりやすいプログラムありがとうございました。
- 544 名前: ◆5bhYRM1Rdk [2012/08/24(金) 00:39:58.49 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):[1] 授業単元:C言語 [2] 問題文(含コード&リンク):ideone.com/rVIkp [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 545 名前: ◆5bhYRM1Rdk [2012/08/24(金) 00:47:14.72 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):ideone.com/bycLg [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 546 名前: ◆5bhYRM1Rdk [2012/08/24(金) 00:58:28.44 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク):ideone.com/Ax7di [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 547 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 01:00:33.37 ]
- 問題文くらい書き写せよ。
- 548 名前: ◆t3V4YN9hBY [2012/08/24(金) 01:23:58.54 ]
- >>542
すいません。バイト終わって家で動かしたのですが、INFINITYとprevが識別できません。 どうすればよろしいでしょうか? お手数かけて申し訳ないっす;;
- 549 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 02:05:14.92 ]
- INFINITYじゃなくて<limits>をインクルードしてstd::numeric_limits<double>::infinity()
ってやればいいじゃんせっかくあるんだから
- 550 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 06:37:39.16 ]
- const double INF = 99999999; とかのでかい数突っ込んでおいてもよろしい
- 551 名前: ◆5bhYRM1Rdk [2012/08/24(金) 08:56:06.35 ]
- 544の問題を書いてみたんですが、なんで出力されないのでしょうか?コンパイルが通るので
分かりません 書いたコード→ideone.com/ky4CJ
- 552 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 09:00:21.33 ]
- >>551
ttp://ideone.com/As3OL
- 553 名前: ◆5bhYRM1Rdk [2012/08/24(金) 09:08:31.31 ]
- >>すばやい回答ありがとうございます。あなたいつも回答してくれてるような・・
- 554 名前: ◆5bhYRM1Rdk [2012/08/24(金) 09:56:06.01 ]
- 545誰かお願いします。非スカラー型へのポイント変換ってなんですか・
書いたコード→ideone.com/ToYZ8
- 555 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 10:03:40.64 ]
- struct queue{
struct data *top,*rear; }; じゃなくて struct queue{ struct queue *top,*rear; }; じゃねーの?
- 556 名前:555 mailto:sage [2012/08/24(金) 10:15:59.29 ]
- ノードは自分で定義しろってことか
ideone.com/1n7lv
- 557 名前:555 mailto:sage [2012/08/24(金) 10:43:05.07 ]
- >>546
ヒープ使うようにした ideone.com/RW1M5
- 558 名前:デフォルトの名無しさん [2012/08/24(金) 10:43:32.15 ]
- [1]授業単元:マイコン実習
[2]問題文 H8マイコンを使ってマイクロスイッチを押した回数をカウントして2桁LEDディスプレイに表示させるプログラムを作りたいです。 カウントリセットもできたりしたです。行く行くは音源を付けて流れるようにしたりマイクロスイッチの数を増やしたいです。 [3]環境 [3.1]OS:Windows [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C言語 [4]期限:8月31日 [5]その他の制限:
- 559 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 10:49:49.98 ]
- >>558
いいなぁ。楽しそう。1週間あれば余裕を持って作れるね。 おれも学生に戻りたい。
- 560 名前: ◆5bhYRM1Rdk [2012/08/25(土) 01:37:01.41 ]
- >>556>>557ありがとうございます。
>>557なんですがヒープをまだ学習していないので>>556に延長する形で cの初心者でもわかるように書いて欲しいのですが、誰かお願いします。
- 561 名前:デフォルトの名無しさん [2012/08/25(土) 01:41:25.04 ]
- >>560
ヒープとは動的に確保されるメモリ領域のことだよ malloc()とかで確保される領域ね
- 562 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 01:43:33.09 ]
- スタックだって動的じゃんw
何を言ってるんだ
- 563 名前:デフォルトの名無しさん [2012/08/25(土) 01:53:16.56 ]
- >>562
>>561の1行目が言いたいこと 2行目はその一例
- 564 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 02:34:20.18 ]
- つまりスタックも動的なのでヒープであるってことでいいですか?
- 565 名前:デフォルトの名無しさん [2012/08/25(土) 02:43:21.11 ]
- >>564
いくないです >>561の動的と>>562の動的とは意味が異なる
- 566 名前: ◆5bhYRM1Rdk [2012/08/25(土) 02:45:27.43 ]
- >>560は自己解決しましたすいません。
別の問題お願いします→ideone.com/djvSI
- 567 名前:デフォルトの名無しさん [2012/08/25(土) 02:48:50.62 ]
- >>566
curとtopの変数の使い方逆じゃね?
- 568 名前: ◆5bhYRM1Rdk [2012/08/25(土) 02:53:14.26 ]
- >>567コードを書いてほしいです
- 569 名前:デフォルトの名無しさん [2012/08/25(土) 02:58:05.64 ]
- >>568
質問を書け
- 570 名前: ◆5bhYRM1Rdk [2012/08/25(土) 03:04:19.02 ]
- >>567にかいてあるんですが、何か不足してますか?
- 571 名前:デフォルトの名無しさん [2012/08/25(土) 03:08:42.25 ]
- >>570
ここに書け
- 572 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 03:43:59.72 ]
- >>566
ideone.com/LqC3i
- 573 名前: ◆QZaw55cn4c mailto:sage [2012/08/25(土) 05:18:11.37 ]
- >>566
toro.2ch.net/test/read.cgi/tech/1313183984/402
- 574 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 10:31:21.30 ]
- >>◆5bhYRM1Rdk
何個も宿題書いてるみたいだけど 小出しにしないで全部書いたほうが良いよ 一連の問題だって分かると解答も変わるし
- 575 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 10:58:35.13 ]
- それから自分のソースを添削してもらいたい場合を除き問題はコピペする。
なぜかというと、アップしたサイトから問題が消えてしまうと、最近の地方都市の ようにシャッターが下りたままだらけのスレとなってしまう。
- 576 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 15:24:15.40 ]
- >>573
ここにリンク張れ 変なスレに誘導すんなカス
- 577 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 16:41:38.84 ]
- できれば、小出しにしないでほしいな。
数多くてもいいいから。
- 578 名前: ◆5bhYRM1Rdk [2012/08/26(日) 11:25:52.58 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク): ideone.com/vbxzo ideone.com/d2Q9D ideone.com/WX3WK ideone.com/7PgFw [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4]期限 1週間以内
- 579 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 12:04:52.02 ]
- >>578
>>575
- 580 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 12:21:54.54 ]
- 複数レスに渡るようなコードはうpろだに貼った方がいいけど
その場合でも問題の概要くらいは書いた方がいいな。手をつけてもらえなくなる あとideone重い
- 581 名前:デフォルトの名無しさん mailto:sage [2012/08/26(日) 17:54:05.36 ]
- >>578
酷い問題だなぁ スタックとキューの実装比較がテーマなのにインターフェイスが異なるとかw そも queue.rear って必要か? print_queue_list() の実装も気持ち悪いし
- 582 名前: ◆QZaw55cn4c mailto:sage [2012/08/26(日) 19:49:58.83 ]
- >>575
ideone や codepad は 5 年前の内容でも引っ張り出せる。5年前の自分のコードをみるとさすがに赤面ものだ
- 583 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 03:49:40.48 ]
- >>582
メールでやり取りするとまた削除対象になりますよ
- 584 名前:デフォルトの名無しさん mailto:sage [2012/08/27(月) 20:27:33.77 ]
- >>578
Stack ideone.com/PLIcx Queue ideone.com/VLRFP
- 585 名前: ◆GnxmqzQNd3uR mailto:sage [2012/08/28(火) 03:49:37.29 ]
- main.cpp
ttp://paste.factorcode.org/paste?id=2742 gff.h ttp://paste.factorcode.org/paste?id=2741 Struct[0]->Typeがメモリー上のデータではなくアドレスを指している理由が分かりません。 期待する動作としてはStruct[0]->TypeがStruct[1]->Type以降と同じようにデータを指すことです。 よろしくお願いします。 ttp://paste.factorcode.org/paste?id=2740 実際の出力 0x005e43e8 Struct[0]->Type 0x005e43e8(6177768) 期待する出力 0x005e43e8 Struct[0]->Type 0xffffffff(4294967295)
- 586 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 04:11:30.99 ]
- 洋ゲーのデータ読み込む宿題とは珍しい
- 587 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 04:53:11.55 ]
- >>585
test->Struct = (Struct *)(MEMORY_gff + 0x38); で代入しちゃってるからなぁ ローカル変数用意してそこに代入した方がいいかもね Struct *testStruct = (Struct *)(MEMORY_gff + 0x38); printf("0x%08lx\tStruct[%d]->Type\t0x%08lx(%lu)\r\n", &testStruct[i].Type, i, testStruct[i].Type, testStruct[i].Type); あとマクロとか使ったほうがいいかもね ttp://ideone.com/cDq75
- 588 名前: ◆GnxmqzQNd3uR mailto:sage [2012/08/28(火) 05:12:56.58 ]
- >>587
ありがとうございます。 以下のような構造体を作ることは可能なのでしょうか? 可変長の部分は結局ポインタで繋げることになるのでしょうか? 構造体1 |=DWORD aa; |-int bb; |-構造体2[bb] ||-int count; |\-DWORD aaa; \-構造体3[bb] |-char foobar[0][50]; |-char foobar[1][50]; \-char foobar[2][50];
- 589 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 05:27:50.84 ]
- >>588
>可変長の部分は結局ポインタで繋げることになるのでしょうか? そうなるね typedef struct { int attr; int num; int items[ ]; } info_t; info_t *info = malloc(sizeof(info_t) + sizeof(int) * num); info->num = num; 構造体の最後のメンバである時に限って0長配列メンバは可能だけど これは全メンバのアドレスが決まっているから可能
- 590 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 06:12:13.24 ]
- >>589
0長配列が使える様になったのは何時ごろからか知ってる? 昔、Xlib とかの構造体では items[1] とかやってて面倒だった記憶が有るんだけど
- 591 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 06:41:31.08 ]
- >>590
規格としてはC99からっぽい ttp://seclan.dll.jp/c99d/c99d04.htm MS-C ver.6から使えたが、ANSI準拠ではないので大っぴらには使ってなかったようだ typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; } BITMAPINFO;
|

|