1 名前:デフォルトの名無しさん [2008/12/31(水) 08:02:03 BE:378684285-PLT(43140)] あなたが解けない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++の宿題を片付けます 120代目 pc11.2ch.net/test/read.cgi/tech/1229424329/
132 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 04:58:14 ] これからは、このスレでは while(代入式) でも良いそうですよ?w
133 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 07:35:14 ] ほっほっほ、麻呂の今朝の食事は、スパゲッティーミートクソースでおじゃるが、何でおじゃる? 麻呂は余計な口出しはしないでおじゃるよ。勝手に議論してたもう。 ただし、このスレのスレタイを読んで、スレ違いだと気づいて、それ相応のスレで 議論するでおじゃるよ。いつまでも譲らない二者で。第三者を巻き込まないでたもう。
134 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 07:50:10 ] >>78 それは括弧がついているんだが?w
135 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 07:53:13 ] >>134 代入式を真偽として扱うのがいやなわけじゃないんだな
136 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 08:54:13 ] >>101 アホか
137 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 08:59:23 ] みんな、落ち着けよ。 代入式が値を持つことを知らないCプログラマなんて、いるワケ無いだろ。
138 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 09:26:55 ] 今北産業
139 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 10:14:52 ] >>134 OKOK、じゃあ if( fp = fopen( 〜 ) ) printf("ファイルオープン成功\n"); にするよw 実用的なところだとassert( fp = fopen( 〜 ) )とかどうよw
140 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 10:25:58 ] j=10-i++ が代入式ではなく、条件式なんだってさー えーーーっ!?
141 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 10:28:48 ] >>140 Cの条件式が論理演算子を必要としないのは最初に習うだろ。
142 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 11:25:42 ] >>120 もっと他に情報ないの?
143 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 11:35:30 ] >139 > 実用的なところだとassert( fp = fopen( 〜 ) )とかどうよw そして NDEBUG を定義するとまともに動作しないプログラムができあがるわけだな。 assert 内で副作用のある式を評価しちゃ駄目。
144 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 11:55:59 ] pc11.2ch.net/test/read.cgi/tech/1230516307/395-399 やっぱり気持ち悪がられてるw
145 名前:139 mailto:sage [2009/01/03(土) 12:42:18 ] ('A`) たしかに、全然実用的じゃなかった いつもは>>78 だからなあ
146 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 12:43:33 ] なんで「文法上問題ない」はスルーなんだよw
147 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 14:08:39 ] >>137 でFAなんだがな みんなわかってるよな?
148 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 14:10:42 ] 暴れてるのがCプログラマじゃないとしたら?
149 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 15:53:58 ] >>120 cis.k.hosei.ac.jp/~wakahara/patrecX_11.pdf まず、「真マニューシャ」「偽マニューシャ」の定義がわからん。 下記では、"true minutiae"はエキスパートが抽出したマニューシャ、 "false minutiae"はアルゴリズムが抽出した点で、"true minutiae"に含まれて居ないもの。つまりハズレ。 books.google.co.jp/books?id=41dm6jorJkwC&pg=PA582&lpg=PA582&dq=%22true+Minutiae%22&source=bl&ots=ElmfGX78vh&sig=ociBxDMdbmnkqe-wO5e79vhcZM4&hl=ja&sa=X&oi=book_result&resnum=3&ct=result 「選別」と言うのは、minutiae.cの結果から、本来の定義のマニューシャだけを残すということのようだが、 pdfの18ページをみると「真マニューシャ」に含まれない端点の基準とかが分からない。
150 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:12:38 ] >>147 コンパイラの警告が見えない馬鹿ですね?w
151 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:13:45 ] >>150 警告がどうしたんだ?
152 名前:デフォルトの名無しさん [2009/01/03(土) 17:17:39 ] つべこべ言ってないで >>52 を正しく直してみろ!!
153 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:17:53 ] 最近は似非プログラマーがC言語を扱っているノカー、時代は変わったもんだな。 while文すらまともに使えないなんて、終わってますね。進路を変えな、今すぐ。 その程度じゃ人生を失敗するぞ。
154 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:22:06 ] >>152 正しいから、これ以上、直らないだろ。
155 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:28:58 ] >>153 さすが人生失敗してる人が言うと説得力が違うw
156 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:41:44 ] >>120 labelsetの処理はなんとかならんもんかね。 >>149 多分、>>120 の講義では指紋照合についてプログラムを書くということをやってるっぽい(ググった)。 ・指紋の線の端点だと確定できる点を真マニューシャ ・指紋の線の端点だと確定できない点を偽マニューシャ と定義してるくさい。 指紋認証だと、スキャナに指を押し付ける力加減により、スキャンする指の画像が変わってくる。 画像の境界線上にできる点を偽マニューシャと呼びたいたいのではないかと思う。 そこで、問題の意図としては、「その境界線をどうやって判断するのか?」を解かせようとしてるのかも (処理思いつかんが)。 つーか、ほとんど推理ゲーだな。
157 名前:156 mailto:sage [2009/01/03(土) 17:56:33 ] >>149 すまん。 境界線ではなく、同じラベル中で距離が近い点を全部消してるのかも。 どの程度の距離かは不明だけど。
158 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 21:57:05 ] >>157 稜線上の距離が基準だとすると、以下の二つの扱いが納得できない。 up2.viploader.net/pic3/src/vl2_090483.jpg up2.viploader.net/pic3/src/vl2_090484.jpg 下の点は、本当に消えるべき点なのだろうか?
159 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:08:03 ] 実用とほとんど関係の薄い問題を解かせて何が楽しいんだろ。教授の自己満足か。
160 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:10:21 ] >>159 技術ありき 実用にするかどうかはアイディア次第
161 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:12:16 ] >>159 パターン認識の実用がどんなか知らないが、これは指紋の照合では基礎なのでは?
162 名前:157 mailto:sage [2009/01/03(土) 23:39:52 ] >>158 申し訳ありません。 距離を基準とすると下の点は消えるべきではないですね。 取り下げさせていただきます。
163 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 00:02:47 ] >>162 依頼にも「同じ隆線上で近接して出現 したマニューシャは」云々と書いてあるし、なにかしてるはずだけど・・・ pdfに載ってる処理結果を見ると、他にも何か処理をしていなくては、辻褄が合わない。 それこそ境界線上の端点の除外とか。 工夫を考えろと言うことなのかな。
164 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 01:57:57 ] >>143 詳説もとめます。
165 名前:120 mailto:sage [2009/01/04(日) 02:03:11 ] 山ほど説明不足でホントにすいませんでした。マニューシャの定義などは、すべて下のファイルに入っています。 ただ、課題でHilditch.cを使うかは分かりません。 www1.axfc.net/uploader/He/link.pl?dr=4660528869&file=He_177945.zip (pass:1) マニューシャについては11のpdf、Hilditch.cをつかって,細分化するコードについては10のpdfに書いてあります。 丸投げでごめんなさい。
166 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:05:11 ] 訂正:www1.axfc.net/uploader/He/ の He_177945.zip です。(pass:1) 何度も迷惑かけてすいません・・・
167 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:12:06 ] >>164 >>143 ではないが、assert(expr)は、NDEBUGが#defineされているときにはexprが評価されない。 実装によるが、たいていマクロだから副作用がある式を評価させてはならない。 とりあえず、自分の環境のassert() (多分assert.hにでも書いてある)を読んでみるといいよ。
168 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:48:09 ] >>166 学校のサイトはもう見つけた。>>149
169 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:50:36 ] >167 一応補足。 C言語規格 9899:1999 7.2/1 によれば #include <assert.h> 時に NDEBUG が定義されている場合、assert は以下のように定義される。 #define assert(ignore) ((void)0) ということで、expr 部分(上だと ignore だが)全体が消滅する。 # ちなみに 7.2/2 では関数じゃなくてマクロで実装しろと規定されている。 そもそも assert とはプログラムのバグ(ロジックエラー)を引っかけるものであって、実稼働中に発生するようなエラーに対処するものではない。 ということで例えば VC++ だと Release ビルドでは既定で NDEBUG が定義されたりする。 結果、assert 内に副作用のある式を記述してしまうと、Debug ビルドと Release ビルドで挙動が異なるコードを生み出してしまう。
170 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:53:30 ] >169 != >167 で >169 では >164 に対する返答補足のつもり。
171 名前:デフォルトの名無しさん [2009/01/04(日) 03:07:44 ] HTMLテキストデータから数値(浮動小数点)のみを順に抽出して いきたいのですが、どういう風にすればよろしいでしょうか? ご教授ください。
172 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:10:41 ] >>1
173 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:10:42 ] >>171 HTMLテキストデータのサンプルくらい提示して欲しいもんだ
174 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:26:16 ] >>171 後付で条件足すなよ! #include<iostream> #include<iterator> #include<string> #include<cstdlib> #include<cctype> int main(){ std::string src; copy(std::istreambuf_iterator<char>(std::cin),std::istreambuf_iterator<char>(),back_inserter(src)); for(const char*s=src.c_str();;){ if(*s=='\0')break; if(std::isspace(*s))++s; char*next=const_cast<char*>(s); std::strtod(s,&next); if(s == next){++s;continue;} std::cout.write(s,next-s); std::cout << std::endl; s = next; } }
175 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:29:27 ] 2箇所訂正 #include<algorithm> が抜けているのでcctypeの下に追加 if(std::isspace(*s))++s; が空白1つにしか対応できていないので 任意個数の空白に対応するためにcontinueするする if(std::isspace(*s)){++s;continue;}
176 名前:デフォルトの名無しさん [2009/01/04(日) 04:54:08 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8516.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 無期限 [5] その他の制限:特にはありません。よろしくお願いします。
177 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 05:25:09 ] >>176 一応元のコードをベースにしたけどこんなんでおk? #include <stdio.h> #include <math.h> int main(void) { { int i, n, Limit; n = 0x7FFFFFFF; for(;;--n){ Limit=(int)sqrt(n); for (i=Limit;i>1;i--) if (n%i == 0)break; if (i==1)break; } printf("int型の最大の素数は%dです\n",n); }{ unsigned int i, n, Limit; n = 0xFFFFFFFF; for(;;--n){ Limit=(unsigned int)sqrt(n); for (i=Limit;i>1;i--) if (n%i == 0)break; if (i==1)break; } printf("unsigned int型の最大の素数は%uです\n",n); } return 0; }
178 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 05:32:48 ] INT_MAXとかを使った方がいいと思う
179 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 05:42:11 ] >>178 それを使うか悩んだんだけど、limits.hを授業でやったか分からない。 それとintのサイズが32bitであると問題文でわざわざ定義されている。 そんな感じで、今回はマジックナンバーを決めうちで実装した。
180 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 06:24:02 ] 麻呂のクソースではおじゃるね、まずそれぞれの変数に-1を入れてやんよ? さすれば、何ビットだろうとその変数が扱える最大のFFFF・・・になるでおじゃるし。 え?邪道?それがクソースでおじゃっ!
181 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 06:32:22 ] unsigned int uint=-1; signed int sint=uint>>1 ; printf("uint:%u \nsing:%d\n",uint,sint); きんもぉ〜★なクソースでおじゃっ
182 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 07:06:07 ] >>176 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8517.c
183 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 07:36:40 ] [1] 授業単元:アルゴリズムの基礎および演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8518.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年1月10日12:00まで [5] その他の制限:特にありません。 よろしくお願いします。
184 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 09:47:19 ] 丸投げキター! 1段1次のRunge-Kuttaと称してEuler法で解いてやりたい
185 名前:176 mailto:sage [2009/01/04(日) 10:19:18 ] >>177 >>182 ありがとうございます。 助かりました。
186 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:52:08 ] >>120 (2)だけ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8519.txt (1)は、結局、求められているものが分からない。 ろだからファイル消してるくらいだから、もう此処見てないかも知れないけど・・・
187 名前:C初心者 [2009/01/04(日) 12:12:38 ] 1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):ポインタを用いた二分探索木の作成 [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限:データはファイルから読み込むものとしています。 他のスレでも質問させてもらったのですがどうしてもわからないので、ここで質問させて頂きます。 宿題ではあったのですが、もう期限は過ぎています。 ただどうしても知りたいのでどなたかお願いします。あとオススメの参考書等教えていただけると嬉しいです。
188 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 12:31:13 ] >>187 oku.edu.mie-u.ac.jp/~okumura/algo/ >『C言語による最新アルゴリズム事典』
189 名前:C初心者 [2009/01/04(日) 17:37:39 ] >>188 ありがとうございます。 早速注文しました。 プログラムはわかりませんか??
190 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 17:40:01 ] >>189 今すぐ買って来いバカ
191 名前:おねがいしますw [2009/01/04(日) 17:44:13 ] [1] 授業単元: アルゴリズムデータ構造U [2](コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8520.txt 問題文 [1]list3.cの演習の部分を埋め、完成させ動作を確認せよ [2]逆順に整列入力するようにプログラムを作り変えよ [3]環状リストの処理をダミーノードを設定せずに作ってみよ [4]双方向リストの処理をダミーノードを設定せずに作ってみよ 問題は以上です お願いします [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C言語) [4] 期限: ([1月6日9:00までに願いします] )
192 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:57:00 ] >>191 元からバグってるとかねーだろ。
193 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:15:05 ] そんなこと無いよ。deleteに小さい値渡すとsegfaultになるとか絶対ないよ
194 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:22:56 ] そんなこと無いよ。insertに先頭と同じ値を渡してもリストは壊れるとか絶対ないよ
195 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:32:06 ] 見辛いし、全部作り変えたほうがいいじゃんwww
196 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:10:56 ] >>189 リンク先のtree.cってソースがそれだろ?
197 名前:デフォルトの名無しさん [2009/01/05(月) 00:20:19 ] [1] 授業単元:プログラム [2] 問題文(含コード&リンク): 文字データの入力と出力 Visual Studioを用いてConsoleApplicationを作成せよ。 以下の条件を満たすものを作成する事。 最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。 登録数は任意に決定出来、10名を超えた場合は再入力させる事。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語:C [4] 期限: 1月5日6時まで [5] その他の制限: 構造体習い始めた程度の能力
198 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:52:18 ] [1]授業単元:C言語 [2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8522.txt [3]環境 [3.1]OS:windows XP [3.2]コンパイラ名: visualC++2005 [3.3]言語:C [4]期限:2008年1月5日午前10時 [5]特になし。
199 名前:197 ◆brUNnJvSqY [2009/01/05(月) 01:10:31 ] >>197 訂正 [1] 授業単元:プログラム [2] 問題文(含コード&リンク): 【文字データの入力と出力】 Visual Studioを用いてConsoleApplicationを作成せよ。 以下の条件を満たすものを作成する事。 最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。 登録数は任意に決定出来、10名を超えた場合は再入力させる事。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: visualC++2005 [3.3] 言語:C [4] 期限: 2009年1月5日6時まで [5] その他の制限: 構造体を習い始めた程度の能力
200 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:15:44 ] >>198 #include <stdio.h> int main() { printf("sum { 1, 3, ... , 99 } = %d\n", 50 * (1 + 99) / 2); printf("sum { 2, 4, ... , 100 } = %d\n", 50 * (2 + 100) / 2); return 0; }
201 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:53:41 ] >>199 /* ちょっと気持ち悪く書いてみたよ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define ENTER_MAX 10 #define NAME_LEN 256 #define AGE_LEN 4 #define BUFF_SIZE (NAME_LEN + AGE_LEN + 1) int main(void) { char table[ENTER_MAX][BUFF_SIZE]; char buff[BUFF_SIZE]; int n; int i; do { printf("登録数 (1 から %d) >> ", ENTER_MAX); } while ((n = atoi(fgets(buff, BUFF_SIZE, stdin))) > ENTER_MAX); for (i = 0; i < n; ++i) { int len; printf("名前 >> "); fgets(table[i], NAME_LEN, stdin); len = strlen(table[i]); printf("年齢 >> "); fgets(&table[i][len + 1], AGE_LEN, stdin); table[i][len - 1] = ','; table[i][len] = ' '; } for (i = 0; i < n; ++i) printf("%s", table[i]); return 0; }
202 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:09:03 ] >>186 親切な解答、ありがとうございました。1はまた考えてみます。 失礼しました。
203 名前:197 ◆brUNnJvSqY mailto:sage [2009/01/05(月) 02:12:10 ] >>201 ありがとうございます。 fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? という、エラーが出てしまいます。回避法はありますでしょうか? 出来れば、初心者に毛が生えた程度のプログラムで作っていただけると有りがたいです。
204 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:13:16 ] >>203 #include <stdafx.h> をソースの頭に書け あと氏ね
205 名前:デフォルトの名無しさん [2009/01/05(月) 02:32:12 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8523.txt [3] 環境 [3.1] OS: win [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限: 朝まで [5] その他の制限: よろしくお願いします
206 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:47:14 ] >>205 /* 意味が良くわからないけどこういうことかな */ #include <stdio.h> #define N 1024 const char const *str = "#include <stdio.h>\n\nint main() {\nint k, c, n, i;int l;int m = 0;\n\ \tfor (k = 0; k < 3; k ++) {\n\t\tfor (n = l = 0;\n\t\t\ (c = getchar()) != '\\n';l++) {\n\t\t\tif (l == 0 && c == '-') {\n\t\t\tprintf(\"Error!!負の数\\n\");\ \n\t\treturn 1;\n\t}\n\tif (l < 8) {\n\t\tif (c < '0' || c > '9') {\n\ \t\tprintf(\"Error!!数字文字以外の入力\\n\");\n\treturn 1;\n}\n\ \tn = n * 10 + c - '0';\n\t}\n}\n\tif (l == 0) {\n\tprintf\ (\"Error!!改行のみの入力\\n\");\nreturn 1;\n}\n\tm += n;\n\t}\n\ \tprintf(\"合計は%d\\n\", m);\nreturn 0;\n}\n"; int main(void) { int x[N], i; for (i = 0; str[i]; ++i) x[i] = str[i]; return 0; }
207 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:23:15 ] ちょ、そのクワイン的発想は何w
208 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:36:17 ] 字義通りだと、こうだろ? むしろ、他の解釈を聞かせて欲しい。
209 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:42:07 ] ビルド済みのバイナリかソースのどちらかだろうとは考えた
210 名前:C初心者 [2009/01/05(月) 11:00:16 ] >>196 すいません、リンク先に行けなくて見れてないです。
211 名前:デフォルトの名無しさん [2009/01/05(月) 12:52:12 ] [1] 授業単元: c [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8524.txt [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限:夕方 [5] その他の制限: よろしくです
212 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:00:26 ] >>211 何周目だよ。死ねよ。
213 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:16:18 ] >>1 > 気に入らない質問やその他や発言はスルーの方向で。 も読めない基地外って何?別にお前個人を指定、特定して答えろなんて 誰も言って無いし、答えられない低レベル役立たずのクズになんて頼んでもいないだろ。
214 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:21:06 ] スレタイも読めないようだな。ここで丸投げの宿題が書き込まれるのは 分かりきっていることなのに、自分が気に入らないとファビョって 訳も分からないクレームをつける奴って何?そんなんだから 一生、成功しないままこの世を去るんだろ?w そういうのって簡単に言うと「負け組み、社会の底辺」って言うんだぜ? ほれ、お前と同じ世代、同じ学校に通っていたけど自分が見下していたあいつ、 今何をしてる?少なくともお前以上の出世はしただろうねw お前はいつまでも、こんなスレで引きこもりながら陰湿なレスをし続けるだけ。 人生終わってら。
215 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:44:35 ] >>211 /* たぶん大丈夫だと思う */ #include <stdio.h> #include <stdlib.h> #include <math.h> #define L 3 #define N 8 #define M (N * sizeof(int)) int main(void) { int *x[L], total = 0, i; for (i = 0; i < L; ++i) { int n; x[i] = (int *)malloc(M); printf(" input number >> "); if ((n = atoi(fgets((char *)(x[i]), M, stdin))) > (int)pow(10, N)) printf("%d\n", n %= (int)(pow(10, N))); if (n < 0 || (n == 0 && x[i][0] != '0')) { fprintf(stderr, "Error!\n"); return 1; } total += n; } printf("answer = %d\n", total); return 0; }
216 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:45:57 ] 下から9行目の printf("%d\n", n %= (int)(pow(10, N))); は n %= (int)(pow(10, N)); に直して。
217 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:17:06 ] >>211 #include <stdio.h> int input() { char c;int a = 0;int cnt = 0; while(1) { c = getchar(); if(c == '\n') break; if('0'<=c && c<='9') a = a*10 + c-'0'; else cnt=9; cnt++; } if(cnt==0 || cnt>=9) return -1; else return a; } // int main(void) { int a[3],i; printf("8桁までの整数を3つ入力してね\n"); for(i=0;i<3;i++) { a[i] = input(); if(a[i]<0) { fprintf(stderr,"Error : 8桁までの整数を入力してくださいませ\n"); return -1; } } printf("合計 %d + %d + %d = %d\n",a[0],a[1],a[2],a[0]+a[1]+a[2]); return 0; }
218 名前:デフォルトの名無しさん [2009/01/05(月) 14:19:49 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8525.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Stdio 2005 [3.3] 言語: C [4] 期限: 1/5 21:00 よろしくお願いします。
219 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:29:53 ] [1] 文字列の格納、比較 [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8527.zip (設問もzipに入っています。) このプログラムをポインタとstrchr関数を使わない形に書き換えていただけないでしょうか。 あと、コメントアウトでややこしいところ、ループの箇所等に説明をつけていただけるとありがたいです。 [3] 環境 [3.1] WinXP [3.2] Borland C++ Compiler 5.5 [3.3] 言語:C言語 [4] 期限:[2008年1月15日00:00まで] [5] 原則的にgoto 文は使用しない。 do while ループに関してはできるかぎり使用せず、while に統一する。 ※キーボードからの入力は、scanf 関数およびgets 関数を使用せず、getchar 関数または、 fgets 関数を使用すること。
220 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:33:13 ] >>213
221 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 17:03:15 ] >>219 しね
222 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 18:22:05 ] >>218 こんな感じでいかが? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8528.txt
223 名前:デフォルトの名無しさん [2009/01/05(月) 19:26:03 ] >>211 もう前スレで解答してあるはずだが
224 名前:218 [2009/01/05(月) 20:03:05 ] >>222 自分のミスで問題に一部書き忘れをしてしまいましたが、ここまでしていただければ十分です ありがとうございました
225 名前:デフォルトの名無しさん [2009/01/05(月) 22:33:58 ] [1] 授業単元: 計算機工学 [2] 問題文(含コード&リンク): 下記 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 2009年01月15日19:00まで [5] その他の制限: なし ■問題 指定した部品数で建てられる家の最大面積を求めるプログラムを作成して下さい。 窓、ドア、壁の3タイプの部品があり、部品の長さは2m。 次のルールを満たさなくてはいけません。 1)1面にはドアは1つまで 2)家には少なくとも1つのドアが必要 3)ドアの両脇は壁部品でなくてはならない 4)窓の両脇は壁部品でなくてはならない 5)家は四角型 6)部品はそれぞれ50個が上限 int MaxArea(int NumWall,int NumWin,int NumDoor) このように各部品の数を指定し、面積を返す関数を作ってください。 例) MaxArea(8,0,1) = 12 --- | | -D-
226 名前:デフォルトの名無しさん [2009/01/05(月) 23:14:44 ] 文字型配列を、"OKINAWA"を初期値として宣言し、文字列を 反転させて、"AWANIKO"と出力するプログラムを作りなさい。
227 名前:デフォルトの名無しさん [2009/01/05(月) 23:25:18 ] >>226 char str[]="OKINAWA"; reverse(str); printf("%s",str);
228 名前:226 mailto:sage [2009/01/05(月) 23:32:05 ] 自己解決しました。
229 名前:デフォルトの名無しさん [2009/01/05(月) 23:35:47 ] >>226 for使っての解き方誰かわかりますか?
230 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:38:45 ] >>225 Google Code Jam 2004のHousePartyってヤツだな。
231 名前:デフォルトの名無しさん [2009/01/05(月) 23:44:51 ] >>229 reverse(char *str) { int i; for(i=0; i<len(str)/2; i++) { char c=str[i]; str[i]=str[len(str)-i-1]; str[len(str)-i-1]=c;} }
232 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:48:51 ] [1]授業単元:C言語 [2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8531.txt [3]環境 [3.1]OS:windows XP [3.2]コンパイラ名: visualC++2005 [3.3]言語:C [4]期限:2009年1月6日午前8時 [5]特になし。