- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ]
- あなたが解けない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++の宿題を片付けます 102代目 pc11.2ch.net/test/read.cgi/tech/1197132472/
- 528 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:18:31 ]
- >>524
適当 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5882.txt
- 529 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:27:37 ]
- >>524
ミスあった >>528 修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5883.txt
- 530 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:31:13 ]
- >>526
勘違いしてたから修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5884.txt
- 531 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 00:45:02 ]
- [1] 授業単元:cprograming2
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5885.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C [4] 期限:2008/1/25 am 0:00 [5] その他の制限: 特に無し よろしくお願いします
- 532 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:31:43 ]
- 【時間切れ】 (1/23)
>518 【未解決問題】 >>531 1/25 0:00 >>404 1/25 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >79 無期限 >144 無期限 問題文>148
- 533 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:38:17 ]
- >>529
なんで、そんなに括弧で囲む必要があるんだい?
- 534 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:39:28 ]
- >>518
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5887.c すでに時間切れ 且つ なぜかリスト構造を使ってしまったけど、一応動いたのでうp
- 535 名前:デフォルトの名無しさん [2008/01/24(木) 01:39:57 ]
- [1] 授業単元:アルゴリズム2
[2] 問題文 最小全域木問題 で以下のコメント文の e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない をどうやって書くのか分かりません。トレースの問題で躓いてしまいます。 プログラムが分かればトレース出来そうなのでよろしくお願いします。 void mst(int i, int k, int weight) { if (k == n - 1) { if (weight < best_weight) { best_weight = weight; 配列 best_tree に t をコピー; } } else if (i <= m) { if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){ t[k] = i; mst(i + 1, k + 1, weight + w[i]); } mst(i + 1, k, weight); } } [4] 期限:1/24 9am test..!
- 536 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:46:51 ]
- 一応情報はランダムにこんな感じで与えられます。
これをどう利用して記述して求めているのかが分かりません。 辺の番号 1 2 3 4 5 6 7 8 9 10 11 12 端点1 4 3 1 2 4 6 1 8 5 6 7 5 端点2 6 7 5 3 5 1 2 4 4 2 8 2 重み 9 16 13 8 7 12 10 5 11 15 4 2
- 537 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 01:56:17 ]
- >>533
データ(変数)を尊重し、できるだけそのデータが使われるときに、宣言し使う。 こうすることで、必要のないデータを他のブロックで誤って書き換えられることを防いでいる。 いわゆる、データ指向プログラミング。 >>529 fclose忘れてるな。別にいいけど。
- 538 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:05:12 ]
- >>534
ありがとうございます!!!
- 539 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:42:42 ]
- >>529 >>537
{NULL};が気になる。普通{0}じゃね?残りは0で埋められるわけだし。 NULLだとアドレスかと思ってしまうな まぁ実用上はまったく問題ないと思うけど
- 540 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:43:52 ]
- >>535
配列eのメンバがわからないことには何とも言えない。 つーか、ソースうp。
- 541 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 02:54:33 ]
- スイマセン
再うp。 まず、バックトラックによって、グラフGの最小全域木を求める 次のようなアルゴリズムを考えます。ここで、n はGの 頂点数、m は辺の数で、e[i] (i = 1, ..., m) はGのi番目の 辺を表し、w[i] はその重み(正整数)を表すものとします。 また、int 型の配列 t と best_tree は大域変数であるとします。 void mst(int i, int k, int weight) { if (k == n - 1) { if (weight < best_weight) { best_weight = weight; 配列 best_tree に t をコピー; } } else if (i <= m) { if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){ t[k] = i; mst(i + 1, k + 1, weight + w[i]); } mst(i + 1, k, weight); } } 関数mstへの呼び出しと戻りを「イベント」と呼ぶことにします。 n = 8, m = 12 であり、Gの頂点が 1, 2, ..., n であって、 Gの m 本の辺の各端点と重みが次のように与えられるとします。 辺の番号 1 2 3 4 5 6 7 8 9 10 11 12 端点1 6 7 5 4 3 1 6 7 8 4 5 2 端点2 7 5 4 3 1 2 4 3 6 8 3 8 重み 14 11 15 12 4 9 6 16 8 7 10 2
- 542 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 03:36:47 ]
- >>537
そこまでするならサブルーチン化した方がいいような気もするが。読みづらいしな。
- 543 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:12:22 ]
- >>531
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5888.txt ヘロンの公式は使ってないけど。眠い。
- 544 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:17:09 ]
- >>531
純粋な興味として聞きたいんだが、どうして座標が整数値で与えられているのにヘロンの公式を使うんだろう。
- 545 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:36:59 ]
- >>543
ちょ、間違ってる。
- 546 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 08:21:22 ]
- [1] 授業単元:C入門
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5876.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:study C [3.3] 言語:C [4] 期限:今日の15時 [5] その他の制限:入門科目なので簡単なコードでお願いします。
- 547 名前:デフォルトの名無しさん [2008/01/24(木) 10:54:30 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):0<N <100,000,000の整数を入力したとき、Nの素因数分解結果を出力するプログラムを作成せよ。 [3.1] OS:XP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C++ [4] 期限:1/25 15時 [5] その他の制限: 2から √Nまでの素数について、小さい順にNを割ってみて割り切れたらその素数aはNの素因数である。 割り算の結果N1についてa から √N1 までの素数について小さい順にN1を割り切れたらその素数b も Nの素数である。以上を割り算の結果Nxが素数になるまで繰り返す。Nx もNの素因数である。 ということを使ってやれと言われました。 簡単なコードでお願いします。
- 548 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 10:56:22 ]
- >>546
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5889.txt 入力チェックはしてない。
- 549 名前:デフォルトの名無しさん [2008/01/24(木) 11:24:20 ]
- q
- 550 名前:546 mailto:sage [2008/01/24(木) 12:25:04 ]
- >>548
助かりした 無事単位を取得できそうです ありがとうございました!
- 551 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 12:35:11 ]
- 単位wwwどんだけしょぼい大学だよ
- 552 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:04:35 ]
- 大学行ってないから基準が分からないんだね。
- 553 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 13:06:27 ]
- 本来なら大学は自分で勉強するべきとか考えないとすれば
90分×14回 = 21時間 だから、無理もない たったの二日で何が習得出来るって話だ
- 554 名前:548 mailto:sage [2008/01/24(木) 13:14:10 ]
- >>550
これで単位か・・・羨ましいような羨ましくないような。 >>547 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5891.txt
- 555 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:09:37 ]
- >>502
ちょっと解説してもらえませんか?
- 556 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:43:55 ]
- >>555
回答した本人じゃないが、 for (i = 0, sum = 0.0; i <= 10; i++) { for (i = 0, sum = 0.0; i <= 10; i++, sum=0.0) { にすれば問題ないのでは?
- 557 名前:デフォルトの名無しさん [2008/01/24(木) 15:30:11 ]
- >>550
ちょっWwおまWw どこの大学だよ それで単位認定って 笑った
- 558 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:33:44 ]
- 文系が理系をちょっとかじるようなゼミだとそんなもんじゃね?
- 559 名前:デフォルトの名無しさん [2008/01/24(木) 15:40:41 ]
- 【質問テンプレ】
[1] 授業単元:CG [2] 問題文(含コード&リンク):対戦型シューティングゲームを作ったんですけど、 もう1つのポットから、玉が出ないんです。どうしたら、出るようになるんでしょうか? 教えてください。あと、当たり判定も作ったんですが、これよりもっといいプログラムは ありますか? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5893.c [3] 環境 [3.1] OS: UNIX [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: Cで書いてあります [4] 期限: 今日の18時まで [5] その他の制限:なし
- 560 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 15:42:32 ]
- >>559
よくあるのはベクトルのノルムで判定する方法
- 561 名前:デフォルトの名無しさん [2008/01/24(木) 15:43:21 ]
- [1] 授業単元: プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5892.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:BCC [3.3] 言語:C [4] 期限: 今日中 [5] その他の制限:特にないです。。。 お願いします。
- 562 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 16:51:24 ]
- >>561
ファイルに書き出すときのテキストのフォーマットは?
- 563 名前:デフォルトの名無しさん [2008/01/24(木) 18:13:49 ]
- >>562
txt形式でお願いします。
- 564 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 18:46:30 ]
- >>563
CSVとかそういうのを聞きたいんだと思うよ。 >>561 CSVにした。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5895.zip
- 565 名前:548 mailto:sage [2008/01/24(木) 18:47:07 ]
- >>561
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5894.txt
- 566 名前:548 mailto:sage [2008/01/24(木) 18:51:31 ]
- >>565をちょっと修正。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5896.txt
- 567 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:03:53 ]
- >>564
>>565 ありがとうございます!
- 568 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:12:25 ]
- >>561
出遅れたけど載せておく kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5897.txt
- 569 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:23:16 ]
- >>568
ありがとうございます!本当に助かります。
- 570 名前:548 mailto:sage [2008/01/24(木) 19:40:44 ]
- >>566にもミスがあったorz
ex11_2.c内の24行目 誤)p = &pmemb[count]; 正)p = &pmemb[count++]; 度々申し訳ない。
- 571 名前:デフォルトの名無しさん [2008/01/25(金) 00:22:36 ]
- [1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5899.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年1月28日まで [5] その他の制限:配列まで習いました。 よろしくお願いします。
- 572 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 00:27:56 ]
- [1] 授業単元:データ構造
[2] 問題文(含コード&リンク): ソートに関する問題です。詳細は↓ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5900.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC 6 [3.3] 言語:C [4] 期限:1/31まで [5] その他の制限:なし よろしくお願いします。
- 573 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:08:46 ]
- >>571
入力されうる最大の値はないのかい? > (* ここに解答を書き加える *) って、他の場所に全く手を加えてはいけないのか分からないよ。 sqrt()のためにmath.hを入れたが、それ以外他の場所には記述を加えずに書いてみた。 割り切れるかのループを回すところで素数以外でも計算してるのが無駄だが、1000000以下の素数を列挙するのに10秒程度。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5901.txt
- 574 名前:573 mailto:sage [2008/01/25(金) 02:18:08 ]
- 無駄な部分があった。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5902.txt
- 575 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 02:35:02 ]
- 【時間切れ】 (1/24)
>404 >535 >559 【未解決問題】 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>572 1/31 >79 無期限 >144 無期限 問題文>148
- 576 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 04:29:08 ]
- >>572
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5903.txt
- 577 名前:ラッセン沖縄 [2008/01/25(金) 05:16:32 ]
- [1]授業単元 プログラミングB
[2]問題文 次の仕様を満たし、入力例の通りにして実行でき、更に、出力例の通りに出力されるようなCプログラムを作成せよ。(出力の空白や桁数にも留意せよ。) 仕様 三角形の底辺と高さ入力し、その面積を求める。 入力例 Z:\>(kadai) (カッコ内を 底辺=(3.0) 入力する)高さ=(4.5) 出力例* ----+----|----+----|----+----|----+----|----+----| 底辺=3.000, 高さ=4.500 面積=6.7500 (*目盛りは桁を示すためのもの。プログラムで出力するのではない。) [3]期限1/25 14時まで 急いでいます! よろしくお願いします。
- 578 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 07:18:51 ]
- [1] 授業単元: C言語
[2] 問題文: 今年のカレンダーを表示させる [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visual studio 2005 [3.3] 言語: C言語 [4] 期限: 明日まで [5] 意味のある定数はマクロ define文 途中でreturn exit 外部変数は使わない。 ヨロシクお願いします
- 579 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 11:55:44 ]
- [1] 問題文: ボンバーマンが格子状(1ブロック1辺20m、マップは縦横それぞれ100ブロック)のマップを爆弾を避けてゴールまでたどり着き、その時間を計算し表示するプログラムを作りなさい。
爆弾の位置座標は既知であり、ボンバーマンの速度は4m/sとする。 [2] 環境 [2.1] OS: Windows [2.2] コンパイラ名とバージョン: Visual Studio [2.3] 言語: C++ [3] 期限: 2008年1月28日まで [4] その他の制限:無し 自分では全く手が出ませんでした…orz 先輩方のお力添えを頂ければ幸いです! 宜しくお願い致します( ´・ω・`)
- 580 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:03:46 ]
- 再度申し訳ありません。
スタート時にルートを決定するのではなく、ブロック毎に曲がれるか判断するみたいです。あとなるべく早くゴールにたどり着かないとダメみたいです(>_<)
- 581 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:16:56 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):短いのでここに書きます。 (1) wavファイルを解析し、音声データを読むためのプログラムを作成せよ。 (2) 音声データを半分に縮め、変換させるプログラムを書け。 (3) 音声データを反転させるプログラムをかけ。 [3] 環境 [3.1] OS: Linux [3.2] gcc [3.3] 言語: C [4] 期限: 2008年1月28日午前9時まで [5] その他の制限: 特にありません。 C初心者なので、どう手をつけたらいいのか全くイメージできません。 皆様方のご協力をお願いいたしますm(_ _)m なにとぞよろしくお願いいたします。
- 582 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 12:22:47 ]
- >>404
期限が切れてしまってますが、どなたかよろしくお願いします。
- 583 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 13:21:55 ]
- >>>>578
#include<stdio.h> int main(void){ int year, month, day, week, tmpm, tmpy, i; int daymax[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; year = tmpy = 2008; month = tmpm = 1; day = 1; if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) daymax[1] = 29; if (tmpm < 3) { tmpy--; tmpm += 12; } week = (tmpy + tmpy/4 - tmpy/100 + tmpy/400 + (13*tmpm+8)/5 + day) % 7; for(; month <= 12; day++, week++){ if(week == 7) week = 0; if(day == 1){ printf("\n***** %04d / %2d *****\n", year, month); for(i=0; i < week; i++) printf(" "); } printf(" %2d", day); if(day == daymax[month-1]){ putchar('\n'); day = 0; month += 1; continue; } if(week == 6) putchar('\n'); } return 0; }
- 584 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 14:56:31 ]
- >>582
その書き込みの50分後、 mixiの宿題スレに全く同じ問題を貼った奴が居る。 開発環境と期限は違うが、もしかしてお前さんか?
- 585 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:26:40 ]
- >>579
C++っての見逃して、思いっきりCで書いてしまった ほかにもっとうまいやり方あったと思うけど、一応できたので参考程度に見てください kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5904.c
- 586 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 15:32:33 ]
- >>585
printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]+1) * 5) を printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]) * 5) に修正してください
- 587 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:06:30 ]
- [1] 授業単元:C++プログラミング
[2] 問題文: (処理の中身ではなく、ファイルの読み込みに関してなのですが) 1. フォルダ内に複数存在する "***.dat"(***は数字ではない)を読み込んでそれぞれについて同じ処理を行なう。 2. 処理の中でそれぞれのファイル名(***)とその処理結果(これは2つの数値です)をまとめて別の1つのファイルに出力する。 3. フォルダ内の全ての "***.dat" について処理し終わったらプログラムを終了する。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ:Visual Studio 2005 [3.3] 言語:C++ [4] 期限:1/28 AM10:00 上のようなことがしたいのですが、いい方法が思いつきません… どなたかよろしくお願いします。
- 588 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:22:49 ]
- コマンドラインからhoge *.datとでも入力して、
好きなように繰り返しをすればいい ここは丸投げスレなんだからもっと具体的に書け
- 589 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 17:38:07 ]
- >>588
ファイルは"(生徒の名前).dat"となっていて各教科のテストの点が書かれているのでそれを合計し 1つのファイルに全員の分を"生徒の名前:合計点 \n"みたいな感じで出力したいのですが、 おっしゃっている「コマンドラインから〜」というやり方がわからないんです。 すいません
- 590 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 18:29:04 ]
- >>589
#include <iostream> #include <fstream> void main(int argc, char *argv[]) { std::ofstream output( "output.dat" ); for(int i=1; i<argc; i++){ //argv[i]を読み込んで名前と合計点をoutputに書き出す。格納形式が分からんから書けん } cout << "オワタ" << endl; } 実行ファイルをhoge.exeとするとコマンドラインから hoge.exe *.dat と入力すればよい
- 591 名前:587,589 mailto:sage [2008/01/25(金) 19:04:28 ]
- >>590
>>588をみて同じようなことをしたのですが、 Output.dat には "* : 0" としか出力されないんです… コマンドラインでワイルドカード使うために何か特別な作業が必要だったりしますか?
- 592 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:12:38 ]
- ファイルの書式も書かずに・・・
- 593 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:25:42 ]
- inputファイルには、"国語: 74"みたいに
"(教科名):(半角スペース)(数値)"というのが7行ならんでいます。 すいません。
- 594 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 19:38:38 ]
- >>591
#include <stdio.h> int main(int argc, char *argv[]) { int i; for(i = 1; i < argc; i++) printf("%s\n", argv[i]); return 0; } これでも a.exe *.dat *.dat とかになる?
- 595 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:45:43 ]
- そもそもwinで実行引数にワイルドカードで一括指定ってできたっけ?
- 596 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:52:30 ]
- 標準ではできる。シェルによって対応がまちまちだからなあ
- 597 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:54:23 ]
- あと、>>587は引数の形でなしにプログラム内でディレクトリを掘って探すのが題意かもね。指定されてないけど
- 598 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 20:59:39 ]
- >>596
そうだったか、それならワイルドカードで指定する際に カレントディレクトリに該当ファイル置いてないとかかね。
- 599 名前:デフォルトの名無しさん [2008/01/25(金) 21:54:47 ]
- @アルゴリズムとデータ構造
Aパズルの世界では、1 から 9 までの数字を 1 個ずつすべて使った数字(たとえば、123456789 とか 321654987)を 小町数 と呼ぶ。1 から 9 までの数字を順番に並べ、 数字の間に演算記号をつけて計算結果が 100 になるような計算式を求めることを 小町算 という。 加算と減算のみからなる小町算の解は、下記のようになる。 12-3-4+5-6+7+89 = 100 123-4-5-6-7+8-9 = 100 123-45-67+89 = 100 123+4-5+67-89 = 100 123+45-67+8-9 = 100 12+3-4+5+67+8+9 = 100 12+3+4+5-6-7+89 = 100 1+23-4+56+7+8+9 = 100 1+23-4+5+6+78-9 = 100 1+2+3-4+5+6+78+9 = 100 1+2+34-5+67-8+9 = 100 9から1までの数を降順に並べ、加算と減算のみで計算式を構成し、計算結果が 0 になるものを全て求めよ。 9 □ 8 □ 7 □ 6 □ 5 □ 4 □ 3 □ 2 □ 1 = 0 上の問題を解くプログラムを作成しなさい。 3、 3,1 windows 2 gcc 3 C 4、明日の午後8時まで 5、特にないです。 よろしくお願いします^
- 600 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:20:15 ]
- >>262です
遅れてすいませんやっと発言ができました(プロバがアク禁食らってました) 本当に感謝ですー ありがとうございました!
- 601 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:47:19 ]
- >>599
ソフ開試験の午後1問5に同じ問題がある ttp://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19_1/2007h19h_sw_pm1_qs.pdf ttp://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2007h19_1/2007h19h_sw_pm1_ans.pdf
- 602 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 22:54:45 ]
- >>599
int main(void) { puts("98+7-65-43+2+1"); puts("98-76+5+4-32+1"); puts("98-7-6-54-32+1"); puts("9+8+7+6+5-4-32+1"); puts("9+8+7+6-54+3+21"); puts("9+8-76-5+43+21"); puts("9-87+6+54-3+21"); return 0; }
- 603 名前:デフォルトの名無しさん [2008/01/25(金) 23:11:16 ]
- [1] 授業単元: C言語
[2] 問題:関数 f は f=√x * √(1 - 2.5 * 10^-5 * x^2)で表される。 xの初期値4.0から0.5刻みで20.0まで変化させたときの xとfの値をExcelに出力せよ。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: Visual C++ 2005 [3.3] 言語: C [4] 期限: 2008年1月27日 [1] 授業単元: C言語 [5] その他の制限:出力はcsvファイル可。
- 604 名前:591 mailto:sage [2008/01/25(金) 23:30:58 ]
- >>594
そのプログラムでやってみても *.dat となりますね・・・ >>598のせいだ!と思ったので、.exeのあるディレクトリに .datを全部移してみたのですが、 それでも結果は変わらなかったです。 これはもう手書きで1個1個ファイル指定していくしかないんでしょうか・・・
- 605 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:32:43 ]
- カレントディレクトリの意味分かってるか?
一度exeのあるパスまでcdコマンドで移動してから実行しないとダメだぞ。
- 606 名前:591 mailto:sage [2008/01/25(金) 23:42:57 ]
- あ、それはさすがに・・・。
すいません
- 607 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:44:26 ]
- >>599
#include<stdio.h> int calc(char *str){ int ret=0, value, idx; while(sscanf(str, "%d%n", &value, &idx)>0){ ret+=value; str+=idx; } return ret; } char *top(char *str){ while(*--str); return str+1; } void check(char *work, int depth){ if(depth<=0){ *work='\0'; if(calc(top(work))==0) puts(top(work)); return; } *work++='0'+depth; if(depth>1){ *work='+';check(work+1, depth-1); *work='-';check(work+1, depth-1); } check(work, depth-1); } int main(void){ char str[20]=""; check(str+1, 9); return 0; }
- 608 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:54:23 ]
- >>584
mixiはやっていないので、私ではないです。
- 609 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 23:58:54 ]
- >>591
Windows のコマンドプロンプトはワイルドカードを展開しないようだ 解決案 1.コマンドプロンプトで動作するシェル(bash とか)を一段かませる 2.実行ファイルのスタートアップルーチンでワイルドカードを展開するコンパイラ(ライブラリ)を使う 3.dir /b の結果を実行ファイルに渡す 4.自力でファイル検索ルーチンを作る 5.手作業でやる
- 610 名前:591 mailto:sage [2008/01/26(土) 00:13:33 ]
- >>609
そうですか。 わかりました。 1,2,4は今の自分には荷が重そうなので とりあえず "dir /b > temp.dat" で temp.dat を読ませる感じにしようかと思います。 ありがとうございます。 他の方もありがとうございました。
- 611 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 00:46:38 ]
- 【時間切れ】 (1/25)
>577 【未解決問題】 >>603 1/27 >>581 1/28 9:00 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >79 無期限 >144 無期限 問題文>148 >404 期限切れだがやって欲しい
- 612 名前:599 mailto:sage [2008/01/26(土) 01:18:08 ]
- >>601
本当ですね。参考にします。 >>607 非常に助かりました。ありがとうございます^^
- 613 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:18:46 ]
- >>599
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5905.txt
- 614 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:15:02 ]
- [1] 授業単元:プログラミング
[2] 問題文 3問あります kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5908.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Visual C++ 2005 [3.3] 言語: C [4] 期限: 1月28日 午前8時まで [5] その他の制限:特にないですが 考察も書かないといけないので何をやっているか軽い注訳をつけてくれるとありがたいです(これはなくても構いません)
- 615 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:22:27 ]
- >>614
課題1と課題2は現行スレで見た気がするぞ。
- 616 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:37:23 ]
- >>615
本当ですか? ちょっと探してみます レス番のあてつけとか出来ませんか
- 617 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 03:07:10 ]
- >>404
つくりかけで忘れていた。もう見れたもんじゃない。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5909.zip
- 618 名前:478 mailto:sage [2008/01/26(土) 03:18:22 ]
- >>616
それぐらい自分で探してくれ・・・と言いたい所だが、 自分がうpした課題1だけ。
- 619 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 03:20:41 ]
- >>618
本当にありがとうございます(´;ω;`)
- 620 名前:デフォルトの名無しさん [2008/01/26(土) 08:00:09 ]
- 前スレの231と同じ+αなのですが、落ちちゃって見れません、再度お願いできませんでしょうか?お願いしますorz
問題下[1]プログラミングU [2] (1) 次の学生の成績表を元に,出力結果のように合計点と平均点を出力するプログラムを作成せよ。ただし,for文を使うこと。 (成績表) 学籍番号 5001 5002 5003 数学 62 45 76 英語 75 65 93 国語 54 82 63 (出力結果) 数学の合計点=177点,数学の平均点=59.0点 英語の合計点=233点,英語の平均点=77.7点 国語の合計点=199点,国語の平均点=66.3点 (2) (1)で作成したプログラムを元に,学生別の合計点を出力するプログラムを作成せよ (出力結果) 学籍番号5001の合計点は,191点です。 学籍番号5002の合計点は,192点です。 学籍番号5003の合計点は,226点です。
- 621 名前:デフォルトの名無しさん [2008/01/26(土) 08:02:59 ]
- (3)
(1)で作成したプログラムを元に,科目別の最高得点を表示するプログラムを作成せよ。 (出力結果) 数学の最高得点は70点です。 英語の最高得点は93点です。 国語の最高得点は82点です (4) (1)で作成したプログラムを元に,70点以上を得点した学生の人数を科目別に表示するプログラムを作成せよ。 (出力結果) 数学:1人 英語:2人 国語:1人 (5) (1)で作製したプログラムを元に、出力結果をユーザ関数を使って表示するプログラムを作成せよ。 (ユーザ関数の概要) main()関数から成績データを渡し、そのデータを(1)の(出力結果)どおりに表示する。 また、ユーザ関数はhyouji()とする。 (6) (1)で作製したプログラムを元に、次の構造体をつかって(出力結果)を表示するプログラムを作成せよ。 (構造体) typedef struct{ int no; int suugaku; int eigo; int kokugo; }seiseki;
- 622 名前:デフォルトの名無しさん [2008/01/26(土) 08:05:18 ]
- [3]環境
[3.1]XP [3.2]visual studio 2005 [3.3]C++ [4]今日中 [5]なし sageソコね、長文申し訳ないです、期間も短いので、困難かもしれませんが出来る限りでいいのでお願いできませんか?
- 623 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 08:06:33 ]
- 最後までsage損ねてる俺ばっかす・・・すいませんでしたorz
- 624 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 09:07:17 ]
- >>614 B
#include <stdio.h> #include <math.h> main(int argc,char *argv[]) { int point,i=0; double x,y,old_x,old_y,distance=0.0; char line[1000]; FILE *fp; if(argc!=2){ printf("Usage: %s <filename>\n",argv[0]); exit(1); } if((fp=fopen(argv[1],"r"))==NULL){ printf("file can't open.\n"); exit(1); } while(fgets(line,999,fp)!=NULL){ if(sscanf(line,"%lf %lf",&x,&y)==1){ point=x;//データが1つしかない=点の数なのでpointに代入 continue; } if(i==0){ old_x=x; old_y=y; }//初回は以前の点がないので同じにする distance+=sqrt(((x-old_x)*(x-old_x))+((y-old_y)*(y-old_y)));//2点間の距離の公式 old_x=x; old_y=y;//前回座標の保存 i++; } printf("point = %d distance = %lf\n",point,distance); } 前回の点から今回の点まで移動した距離の合算でいいんだよね?
- 625 名前:デフォルトの名無しさん [2008/01/26(土) 12:05:11 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5910.zip kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5911.zip [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:1/26 [5] その他の制限:なし 分かりません、よろしくお願いします。
- 626 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:40:18 ]
- zipの場合は簡単に説明を書いてくれ
落として解凍するのダルいし
- 627 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:55:02 ]
- なぜzipなんだ・・・やる気うせる
ウィルス恐いよ〜・゚・(つД`)・゚・。
- 628 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:17:54 ]
- ウィルス恐いよ〜(笑)
|

|