- 1 名前:デフォルトの名無しさん [2009/01/15(木) 23:21:27 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題を片付けます 121代目 pc11.2ch.net/test/read.cgi/tech/1230678123/
- 331 名前:デフォルトの名無しさん [2009/02/06(金) 14:24:29 ]
- [1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク): www.logos.ic.i.u-tokyo.ac.jp/icpc2007/jp/index.html [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 2009年2月10日13:00まで [5] その他の制限:特になし ACM国際大学対抗プログラミングコンテスト国内予選2007問題Bです 既出だったらすまん お頼みもうします
- 332 名前:デフォルトの名無しさん [2009/02/06(金) 14:59:00 ]
- [1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8831.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: [3.3] 言語: C [4] 期限: ([2009年02月07日20:00まで] [5] その他の制限:
- 333 名前:デフォルトの名無しさん [2009/02/06(金) 15:08:21 ]
- [1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8832.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: [3.3] 言語: C [4] 期限: ([2009年02月07日20:00まで] [5] その他の制限:
- 334 名前:デフォルトの名無しさん [2009/02/06(金) 15:15:00 ]
- [1] 授業単元:数値解析
[2] 問題文(含コード&リンク) (1)区間演算ライブラリを作れ。(加減乗除のみでもOK) (2)Gaussの消去法のプログラムを作り、それを区間演算化せよ 以上ですが、ソースコードのみでもかまいません [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限:明日20時まで [5] その他の制限: 特になし
- 335 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:25:11 ]
- >>334
> 以上ですが、ソースコードのみでもかまいません ソースコード以外だと、何が付くの?
- 336 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:41:34 ]
- >>335 それだけじゃない
> [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) 『等』・・・・こいつ相当のマニアか。 開発環境が書ききれないほど。ドンと来い。 > [3.3] 言語: (C/C++/どちらでも可 のいずれか) pu-w
- 337 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:51:08 ]
- >>332
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8833.txt
- 338 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:58:57 ]
- >>337
どうしようもない時以外に、goto使う奴は どうしようもない奴だと思うぞ。 elseで全部つなげば解決じゃないですか。
- 339 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:13:48 ]
- >>331
素数を出すアルゴリズムがアレなのでめっちゃ遅いけど。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8834.c
- 340 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:23:22 ]
- >>338
>>332 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8835.txt
- 341 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:24:18 ]
- >>338
しーっ・・・
- 342 名前:338 mailto:sage [2009/02/06(金) 16:30:32 ]
- >>341
これだけは言わせてくれ。>>340ネタ乙。
- 343 名前:339 mailto:sage [2009/02/06(金) 16:31:29 ]
- 問題勘違いした…。
アジア地区予選の問題やってたorz
- 344 名前:デフォルトの名無しさん [2009/02/06(金) 16:40:36 ]
- >>333
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8836.txt
- 345 名前:デフォルトの名無しさん [2009/02/06(金) 17:31:56 ]
- ちょっと漏れがあったようなので;;
[1] 授業単元:数値解析 [2] 問題文(含コード&リンク) (1)区間演算ライブラリを作れ。(加減乗除のみでもOK) (2)Gaussの消去法のプログラムを作り、それを区間演算化せよ [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語:どちらでも可 [4] 期限:明日20時まで [5] その他の制限: 特になし
- 346 名前:313 mailto:sage [2009/02/06(金) 20:57:11 ]
- >>324
>>328 324さんのプログラムを328さんの言うように修正してみたところ データを読み込み、表示されるところまではいくのですが全ての数値が0になってしまいます。 どうすればいいでしょうか。。。
- 347 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:06:23 ]
- >>327
ニュートン法で100回も反復するとか時間の無駄だからな 初期値が悪くてもせいぜい10回だ
- 348 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:45:25 ]
- >>331
なんとなく、計算できているような気がする。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8838.c
- 349 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:11:05 ]
- >>348
関数とか要らないことに気づいたので、大分、短くなった。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8839.c
- 350 名前:325 mailto:sage [2009/02/07(土) 04:18:57 ]
- >>326
double total(Student st){ // return (st.ascore + st.bscore + st.cscore); double a = (st.ascore + st.bscore + st.cscore); return a; } >>346 // printf("%d%lf%lf%lf",&(st[i].number),&(st[i].ascore),&(st[i].bscore),&(st[i].cscore)); printf("%d%lf%lf%lf", (st[i].number), (st[i].ascore), (st[i].bscore), (st[i].cscore));
- 351 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:21:55 ]
- >>349
すごい短縮だな。(2階層くらいで関数化したら、もっと打ちやすかったんじゃ) でも、元ファイルc++だろ? >>331はC指定かかってるよ。
- 352 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:33:39 ]
- >>351
C++ではないよ。-std=c99つけないとコンパイルできないけど。
- 353 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:48:34 ]
- >>352
「-std=c99つければ、gccでもコンパイルできるよ」かな?
- 354 名前:325 mailto:sage [2009/02/07(土) 04:54:11 ]
- >>326
double a; do{ while((a=total(st[pl])) > x) pl++; while((a=total(st[pr])) < x) pr--; >>346 悪い、間違えた。君の言うとおりだ。
- 355 名前:325 mailto:sage [2009/02/07(土) 05:01:10 ]
- >>326
double a; do{ pc = (pl + pr) / 2; if((a=total(st[pc])) == key) return pc; else if((a=total(st[pc])) > key)
- 356 名前:デフォルトの名無しさん [2009/02/07(土) 13:01:57 ]
- >>339>>343
>>348>>349 >>351->>353 有難うございます アジア地区のもやってみたかったので助かりました なんかテストいけそうな気がする
- 357 名前:デフォルトの名無しさん [2009/02/07(土) 13:17:05 ]
- wwwwwwwwwwwwwwwwww
- 358 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:24:44 ]
- >>356
> なんかテストいけそうな気がする ありえねー・・・
- 359 名前:325 mailto:sage [2009/02/07(土) 14:50:36 ]
- >>326
gcc -O3 8828.c -o 8828.exe
- 360 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:34:38 ]
- >>356
あるとおもいます。
- 361 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:48:39 ]
- ??
- 362 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:06:55 ]
- 説明しよう!
>起 >>356 いけそうな気が! >承 >>358 ありえねー・・ >転 >>360 あると思います。 >結 >>361 ?? ??に入る言葉を(ry
- 363 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:11:40 ]
- 詩吟?
- 364 名前:326 mailto:sage [2009/02/07(土) 18:31:45 ]
- >>325
ありがとうございます。 Rankingの表示が出ないんですが簡単に治せますでしょうか。
- 365 名前:326 mailto:sage [2009/02/07(土) 18:42:21 ]
- return plにしたらできました!ありがとうございます。
- 366 名前:325 mailto:sage [2009/02/07(土) 18:55:07 ]
- え?return pl; って、何行目?参考までに。
- 367 名前:326 mailto:sage [2009/02/07(土) 19:58:10 ]
- 50行目ですかね。。あれ違いますか><
- 368 名前:325 mailto:sage [2009/02/07(土) 20:17:42 ]
- Ranking#の値が、合ってれば良いけれど。
> Input A Student Number: 14【Enter】 > Ranking : #269 /*最高得点は1位とせよ.*/ 尚こちらでは、>>350 上)の修正で直った。
- 369 名前:324 mailto:sage [2009/02/07(土) 20:24:17 ]
- こちらでも>>350の上の修正で
正常に動作することが確認できました ちなみにどうして修正前では 正常に動作しなかったのか 理由は分かりますか?
- 370 名前:325 mailto:sage [2009/02/07(土) 20:26:57 ]
- わからない。回避方法は、ステップ実行してて見つけた。
- 371 名前:324 mailto:sage [2009/02/07(土) 20:32:53 ]
- そうですか
お手数おかけしました ありがとうございました
- 372 名前:326 mailto:sage [2009/02/07(土) 21:28:36 ]
- kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8842.txt
このようにして実行するとRankingがすべて0になるんで、52行目のreturn -1;を return -pr;に変えたところRankingが表示されました。(14のとき269位) これで正常動作かなーと思ったんですが 例えば生徒番号1の動作みたところ表示される数値間違ってませんか?
- 373 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:38:07 ]
- return pl;を入れてなくて終了してたのは、
スタック領域のオーバーフローでセグメンテーション違反。
- 374 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:47:02 ]
- >>372
修正したソースを見せて。
- 375 名前:326 mailto:sage [2009/02/07(土) 21:52:26 ]
- kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8843.txt
これです。
- 376 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:22:19 ]
- >>375
mark_sortが変。 クイックソートやりたいんだろうけどできてない。 xを基準にして大小をわけてるけど xがその境界にきてないから変なことになる。 mark_sortやめてqsort使ったら
- 377 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:36:39 ]
- >>376
こっちでは上手く動くようなのだけど、>>375のソースとの違いってあるかな? www1.cts.ne.jp/~clab/hsample/Sort/Sort9.html
- 378 名前:324 mailto:sage [2009/02/07(土) 23:54:41 ]
- >>376
pivotの選び方に欠陥があることは承知しているが 最も単純な方法でクイックソートを作ったつもり qsortを使わなかったのは問題にクイックソートを 使うよう指定されていたのでアルゴリズムを理解していることを 示す必要があると思ったから その必要がなかったら確かにqsort関数を使った方が 高速にできると思う
- 379 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:26:38 ]
- >>377
double total(Student st); で3個の数値を合計している所が違う(追加)。
- 380 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:22:08 ]
- >>378 バグ取りの報酬として、cmp_doubleを使わなくては駄目な理由を調べて教えてくれ(取れてなかったらゴメンナサイ…)。
int cmp_double(double x, double y) { return x > y ? 1 : x < y ? -1 : 0; } void mark_sort(Student *st, int left, int right){ int pl = left; int pr = right; double x = total(st[(pl + pr) / 2]); while(1){ while(cmp_double(total(st[pl]), x) > 0) pl++; while(cmp_double(total(st[pr]), x) < 0) pr--; if(pl >= pr){ break; } swap(st, pl, pr); pl++; pr--; } if(left < pl - 1) mark_sort(st, left, pl -1); if(pr + 1 < right) mark_sort(st, pr + 1, right); } >>379 ( ´_ゝ`)
- 381 名前:379 mailto:sage [2009/02/08(日) 02:08:20 ]
- >>380
while(1) はそのままにした。めんどうなので。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8844.txt
- 382 名前:379 mailto:sage [2009/02/08(日) 02:18:25 ]
- 報酬忘れてた。ヒント:
// while(total(st[pl]) > x) pl++; while((total(st[pl]) > x) != ((a=total(st[pl])) > x)?printf("%d ",pl):printf(","), ((a=total(st[pl])) > x)) pl++;
- 383 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:27:13 ]
- >>381
一回呼び出し側の領域に入れると問題なしなのか!
- 384 名前:326 mailto:sage [2009/02/08(日) 03:09:16 ]
- できました!
色々とみなさんありがとうございました。
- 385 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:25:16 ]
- >>382
よく分からんが、ebpレジスタ同士の比較じゃないと上手く動作しないってこと?
- 386 名前:385 mailto:sage [2009/02/08(日) 03:35:07 ]
- これか……
0xcc.net/blog/archives/000164.html ほとんどバグじゃねーか
- 387 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:40:59 ]
- このサイト前半おかしくね?
53*100=5299.9999999..になることだってあるだろ
- 388 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 11:42:07 ]
- >x86 特有のちょっとおもしろい現象
- 389 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:09:34 ]
- >>387
もう一度読んできて。
- 390 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:02:12 ]
- >>381
xに従ってplとprを移動しているループは、与えられた st[left,right]を飛び出す可能性があるがその問題は放置?
- 391 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:18:07 ]
- ショートカットして、>>380 が正しいと?
- 392 名前:sage [2009/02/08(日) 16:25:06 ]
- 【質問テンプレ】
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):星型5角形(★)の面積を求めるプログラムを作成せよ。ただし、入力は*.txtファイルから行い、入力、計算は関数化すること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:cygwin1.5.25-15 [3.3] 言語:C [4] 期限: ([2009年2月9日10:00まで] [5] その他の制限:特にありませんが、動的メモリ確保(malloc関数)の勉強をしていました。
- 393 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:38:32 ]
- 392です。
口頭で問題を言われただけなので問題文がなく、自分で書いたため、少し問題文にミスがありましたため、補足させてもらいます。 入力のtxtファイルには、時計回りに5つ(もしくは、6つ[6つ目は開始地点と同じ座標])の座標を入力することが条件となっております。
- 394 名前:デフォルトの名無しさん [2009/02/08(日) 16:43:14 ]
- 以下の問題についてですが、どうやって解いたらいいのでしょうか?
C言語 (問題) ファイル xy2data.dat には,カンマで区切られた2つの整数データ(値は0以上5以下)が並んだ行が 何行か格納されている. 各行の最初の整数値をx,次の整数値をyとしてx-y座標上の点(x.y)をファイルの行数個考える. これらの点と、点(4,4)との距離の2乗の値の度数分布を求め,頻度が3以上となる距離の2乗の値 をその値が小さいものから順にカンマで区切って出力するプログラムを作成せよ. ファイルは FILE *in_file; in_file = fopen("xy2data.dat","r"); としてopenし,このファイルからデータを読み出す時は, fscanf(in_file,"%d,%d",&x,&y); として読み出せばよい.(xとyは整数型変数とする) また,読み出しが終わったら, fclose(in_file); としてクローズすること.
- 395 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:04:39 ]
- >>392
星型の条件が分からん。 正確な五芒星なの?
- 396 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:27:59 ]
- 正確な五芒星なら最初の2点分だけで面積判る罠
- 397 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:46:19 ]
- 座標はこれでおねがいします
maps.google.co.jp/maps?ll=41.796944,140.756643&t=h&z=16
- 398 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:49:00 ]
- 392です。
星型の条件とはどういうことでしょう?><; 頂点5つの座標は 4.00000 0.00000 -3.23607 -2.35114 1.23607 3.80423 1.23607 -3.80423 -3.23607 2.35114 です。 答えになっているでしょうか・・・?
- 399 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:54:40 ]
- >>394 解いた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8845.txt
- 400 名前:デフォルトの名無しさん [2009/02/08(日) 20:37:04 ]
- 以下の文で教えて欲しいです。
memcpy(&byteData ,pTimData ,2 ); /* pTimDataからbyteDataへコピー */ byteData = byteData & 0x7c00; /*15bit分のマスクを掛ける。*/ byteData = byteData >> 12; /*12bit移動*/ read(byteData, bmpData, sizeof(short));/*処理後のデータを格納*/ /*次の2byeを格納するためループ。全て格納し終えたらループから抜け出す*/ memcpyでpTimDataからbyteDataへ2byte分切り出した後 論理積でマスクをかけビットシフトしたあと、bmpDataに格納するというものなのですが このままだと2byte分だけbmpDataに格納して処理を終了してしまいます。 処理後の全pTimDataのデータをbmpDataを入れたいのですが、どのようなループ文を書いたらいいのでしょうか? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8847.txt
- 401 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:44:44 ]
- >>400
スレちがい。 どこぞ、質問スレへ行け
- 402 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:57:03 ]
- >>401
申し訳ない。 まんま丸投げじゃないと駄目なんですね。 失礼しました。
- 403 名前:デフォルトの名無しさん [2009/02/08(日) 21:01:55 ]
- >399さん
記載ありがとうございます。 大変もうしわけありませんが、アップしていただいたURLにアクセスできないので、 本文中に記載していただけないでしょうか?
- 404 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:21:26 ]
- >>398
ごちゃごちゃしてるけど。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8848.txt #pragma warning(disable : 4996)の部分は消して使ってね
- 405 名前:399 mailto:sage [2009/02/08(日) 21:53:01 ]
- tp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8845.txt
- 406 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:01:23 ]
- 392です。
404さんありがとうございます! ですが、コンパイルできるのですが、実行ができません><; & gcc ファイル名.c & a.exe input.txt でコンパイル&実行をしたのですが、これではだめなのでしょうか? ↓input.txtの中身 4.00000 0.00000 -3.23607 -2.35114 1.23607 3.80423 1.23607 -3.80423 -3.23607 2.35114
- 407 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:03:19 ]
- 連投すみません。392です。
実行は & ./a.exe input.txt の間違いです。 「./」を書き入れるのを忘れました^^;
- 408 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:14:55 ]
- >>406
プログラムで指定されているファイル名は、in.txtだからねえ・・・
- 409 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:15:27 ]
- int main(){
を int main(int argc, char* argv){ read_points("in.txt",point); を read_points(argv[1],point); でいくと思う
- 410 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:23:49 ]
- int main(int argc, char* argv[]){
か。ごめん!
- 411 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:28:49 ]
- 408さんありがとうございます><助かりました。
- 412 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:42:10 ]
- [1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8849.txt [3] 環境 [3.1] OS: Windows XP [3.3] 言語: C [4] 期限: 2月9日12:00まで よろしくお願いします。
- 413 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:46:32 ]
- >>412
「重複数」の定義は?
- 414 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:52:00 ]
- >>412
クソな課題だな。 int a[x]をmallocで確保してa[ key % x]++して 全部終わったらa[k]が2以上の数を数えてxを掛ける これの繰り返し?上限は「入力されたうちの最大値+1」か?
- 415 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:02:27 ]
- >>414
それだとx=1が常に最適になるので、本当のクソになる。 a[k]の大きさも加味すべきだろう。
- 416 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:09:18 ]
- >>413>>414
何も言われてないので分からないです。
- 417 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:59:23 ]
- >>412
keyは一意でいいんだよね?
- 418 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:15:55 ]
- >>412
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8850.txt バケットの要素数count[i]が2以上であるバケットiについて、Σcount[i]!/2を「要素数」とした。count[i]!/2は、バケットから2要素を選ぶ組み合わせ数。 また、バケット数の上限は、(最大のkey)+1とした。
- 419 名前:418 mailto:sage [2009/02/09(月) 00:23:02 ]
- ごめん、思いっきり勘違いを書いた。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8851.txt バケットから2要素を選ぶ組み合わせ数はcount[i]*(count[i]-1)/2だね。
- 420 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:24:55 ]
- [1]C言語中級
[2]問題文: UNIXなどのオペレーティングシステムで使用されているファイル名称慣用表示を正式表示に変換する。 標準入力から慣用表示を含む表記を正式表記に変換して標準出力に出力すること 先頭文字が.の場合はカレントディレクトリ下のファイル名とすること 例:カレントディレクトリ=/home/test /usr/bin/ls ===> /usr/bin/ls /usr/bin/local/sbin/tmp/../localls ==> /usr/bin/local/sbin/localls /usr/./tmp==>/usr/tmp ./program/source ==>/home/test/program/source ../../home/sample ==>/home/sample ../../../home/sample==>/home/sample .../test==>/test ./sample/test/...../test==>/test ./bin/../../../.. ==>/ [3] linux gcc (Windowsでも可) C言語 [4] ★木曜日の正午までに提出 ★標準的な書式(行内マルチステートメント禁止)で250行以内 ★再帰呼び出しは使用禁止 ★グローバル変数使用禁止 ★パス名の長さは制限無しとする 初級コースが満杯なので、中級コースをとって しまったら、課題レポートが自分には激ムズでした。 自分でやってみたら収拾がつかなくなってしまいました。 期限までわずかに時間はありますが、できれば一両日中に何と かお願いします。
|

|