1 名前:デフォルトの名無しさん [2010/01/18(月) 23:25:55 BE:265079647-S★(508111)] あなたが解けない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++の宿題片付けます 133代目 pc12.2ch.net/test/read.cgi/tech/1260532772/
237 名前:デフォルトの名無しさん [2010/01/27(水) 03:28:16 ] >>235 実行してみたんですが、できないんですが、どうしてでしょうか
238 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 04:37:48 ] >>237 「できないんです」 は禁句 何を期待したか、どんな操作をしたか、そしてどんな結果になったかの 3 点を書かないと 何が問題なのか見た人には分からない
239 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 07:51:08 ] >>230 ありがとうございました!
240 名前:227 mailto:sage [2010/01/27(水) 12:07:55 ] >>234 ありがとうございます。大変面倒な課題のほうたった2時間余りで 迅速にやって頂けて試験前なので助かりました。 (1月31日位になるかと思ってました) 実はもっと長いもの(数値計算関連で長さ約300行)も出てい るので(そちらのほうは必須ではないですが試験が出来なかっ た場合に提出していれば不可になる確率がずっと低くなるそうで) そちらもやって頂けると非常に嬉しいのですがよろしいでしょうか?
241 名前:147 mailto:sage [2010/01/27(水) 13:09:03 ] 147をどなたかお願いできないでしょうか? よろしくお願いします。
242 名前:デフォルトの名無しさん [2010/01/27(水) 13:37:16 ] >>232 #include <iostream> using namespace std; char score(int sc){ if(sc>=90) return 'S'; if(sc>=80) return 'A'; if(sc>=60) return 'B'; return 'C'; } fatal error LNK1120: 外部参照 1 が未解決です。 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 とでるんですが…
243 名前:デフォルトの名無しさん [2010/01/27(水) 13:38:14 ] >>238 でしたすみません。
244 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 14:22:57 ] >>147 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10452.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10453.txt
245 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:23:10 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): キーボードから正の整数nを入力し、n!を計算して画面表示するプログラムを 作成せよ。ただし、階乗を計算する関数のプロトタイプを「void kaiyo(int , int *)」 とし、第1引数にnを、第2引数に計算結果を格納する変数のポインタを指定すること。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限: 2010年1月28日木 [5] その他の制限: よろしくお願いします
246 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:32:11 ] >>245 #include <iostream> void kaiyo(int , int *); int main() { int n, ret; std::cin >> n; kaiyo(n, &ret); std::cout << ret; } void kaiyo(int n, int *ret) { *ret = 1; for (int i = 1; i <= n; i++) { *ret = *ret * i; } }
247 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:47:37 ] >>246 ありがとうございます!
248 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 17:55:11 ] >>234 よくこんな糞問題に手を出すなぁw show()が2つあるのはソート前後の比較用でしょ ソート途中を示すものじゃないと思うよ N=10000でもエディタの設定で折り返しなしにすれば 見れないことは無いけど1行8000バイトだからひどいもんだ
249 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 18:02:03 ] >>242 main() を書きましたか?
250 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 20:23:38 ] [1] 授業単元:情報処理演習 [2] 問題文(含コード&リンク): 次のプログラムで作成される縞パターンを縦にした画像を作成するプログラムを作成せよ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10454.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 提出期限2010年1月29日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 特にないです よろしくお願いします。
251 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:09:22 ] >>250 txtでうpしてるのに何でインデント潰すの? 必要なスペースまで潰すのは嫌がらせ? //if(i>=75 && i<=125){ if(j>=150 && j<=250){ //元々の数字がマジックナンバーなので好きに替えてくれ
252 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:11:05 ] sin のマクローリン展開とコンピュータ定義のsinとの誤差を求めよとの問題なのですが エントリーポイントを定義しなければならないとエラーが出ているのですが解決方法がわかりません #include <stdio.h> #include <math.h> #define gosa 0.00001 double sa(double x){ double d,dt; int k; k=1; d=0; dt=x; d=d+dt; while(1){ if(fabs(sa(x)-cos(x))<gosa)break; } dt=dt*(-1)/((k+1)*(k+2))*x*x; k=k+2; return fabs(sa(x)-cos(x)); } int main(){ double x; x=0.00; while(1){ printf("x=%3f cosの差=%12f\n",x,sa(x)); x=x+0.01; if(x<=1.00)break; } } どうかよろしくお願いします 計算式が間違ってる・・・とかはスルーして貰って結構です [3] 環境 [3.1]windows vista[3.2] visual C++ 2008[3.3] C++[4] [無期限]
253 名前: ◆QZaw55cn4c mailto:sage [2010/01/27(水) 21:21:49 ] >>145 codepad.org/01OEgrMz 期限切れでしたか。残念です。
254 名前:デフォルトの名無しさん [2010/01/27(水) 21:34:44 ] >>249 #include <iostream> using namespace std; char score(int sc){ if(sc>=90) return 'S'; if(sc>=80) return 'A'; if(sc>=60) return 'B'; return 'C'; } mainをどこに入れるんですか?
255 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:35:57 ] 依頼者が見てるか確認してから貼るのがマナーだよん 見てるかどうか確かめても返事がない場合や、見てそうにも ない場合で、世間を騒がせたまま逃げ出した依頼者の尻拭い をしたいという気持ち(大抵の場合は杞憂)でコードを貼る 場合はアンカーは>>1 にしようぜ
256 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:43:16 ] >>252 スレタイ嫁 hello worldからやり直して貼り付けろカス
257 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:44:21 ] >>254 codepad.org/L4M6uCey 問題自体は関数を実装せよ、ということでしたから、回答者は関数 score() だけを回答した(と思います)のですが、 実際に score() の動作を確かめたいというのであれば、こんな感じで main() から書かないといけないでしょうね。 >>255 > 依頼者が見てるか確認してから貼るのがマナーだよん そんなマナーがあるのですか?そんなマナーにどんな意味があるのですか?
258 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 21:49:36 ] >>252 エラーは要約しないで、丸ごとコピペしろ。
259 名前:デフォルトの名無しさん [2010/01/27(水) 22:05:15 ] >>257 プログラムを作成せよじゃないから多分そうですね。一応、>>236 はどうすると実行ができますか?
260 名前:デフォルトの名無しさん [2010/01/27(水) 22:23:44 ] >>253 いえいえ!ありがとうございます!!
261 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:33:34 ] >>200 順列を生成するクラスだけで十分そうなので、後はご自分でどうぞ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10455.txt
262 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:38:52 ] >>261 next_permutation使えば? C限定ならまだ分かるけど。
263 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:48:15 ] >>262 それは>>200 の人に言ってあげてください。
264 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:49:39 ] >>263 >[3.3] 言語: C++ >[5] その他の制限: 特にありません え?
265 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:50:58 ] >>264 だから>>200 の人に言ってあげてください。
266 名前:200 mailto:sage [2010/01/27(水) 22:54:07 ] >>261 うおおーありがとうございます! Cの最低限しか学んでないんで C++っぽいclassとかの使い方の勉強にもなります。 >>262 ぐぐるとそれ使えばいけそうですね。ありがとうございます! いやーそうか、やりたいことのキーワードで検索すれば ライブラリであったりするんだな。 今回は順列でpermutationか。 そういった意味でも勉強になりました。ありがとうございました!
267 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:58:38 ] >>252 これで動くと思うけど問題の意味を取り違えてるような あとなぜかcosが出てきたけどsinに書き換えといた。 #include <stdio.h> #include <math.h> #define gosa 0.00001 double sa(double x){ double d,dt; int k; k=1; d=0; dt=x; d=d+dt; while(1){ if(fabs(d-sin(x))<gosa)break; dt=dt*(-1)/((k+1)*(k+2))*x*x; d=d+dt; k=k+2; } return fabs(d-sin(x)); } int main(){ double x; x=0.00; while(1){ printf("x=%3f sinの差=%12f\n",x,sa(x)); x=x+0.01; if(x>1.01)break; } }
268 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 22:58:43 ] >>265 え?理由は?
269 名前:デフォルトの名無しさん mailto:sage [2010/01/27(水) 23:40:40 ] >>268 理由は、必要としているのは私ではないから。 便利な道具があることを教えるのもいいことだと思います。 個人的には、(テーマが「宿題」ということもあり)ブラックボックスのままよりは、 多少勉強のネタになる状態で提供するのも、悪くはないかなという意見ですが。
270 名前:200 mailto:sage [2010/01/27(水) 23:52:51 ] わたし非常に勉強になりましたのでいいじゃないですか!
271 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 00:15:16 ] >>269 えと、あなたのレスに疑問を抱いたのに 質問者にあれこれ問い質しても意味不明ですよね? 自分が学生時代のころは 特に明記の無い限り標準関数の車輪は減点対象でしたので。
272 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:07:12 ] >>270 私もちょっと困惑気味… >>271 「next_permutation使えば?」と言われましたが、使う機会の無い私に言われるのも 意味不明ですから、質問者へのアドバイスとして言われればよいと判断したまでです。 また、何が減点対象で何が加点対象かは、時代背景も無いとはいいませんが、主には 講義や目的や教授の方針に依るよるでしょうから、質問者が適切に判断されれば良いと 思いますけれど。車輪を自分で発明をするのも勉強のうちですし。
273 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:12:27 ] 「講義や目的や」は「講義の目的や」の間違いです。すみません。
274 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:24:25 ] 基本的にここ、質疑応答スレじゃないんで。 知力、実力共に実態が質問者と教授回答者 であっても、形式的かつ論理的かつ法的には 依頼者と作業実行者の関係になります。
275 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 01:32:55 ] 要するに宿題代行を依頼する人もコード記述を代行する人も かかる行為が世に100%賛同されているとは 言い切れないという認識は常に頭の片隅にでも...
276 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 02:09:45 ] >>272 明らかな糞ソースを張って突っ込みが入ったとしても 苦情は質問者に言ってくれ!ってことね。おkw
277 名前:デフォルトの名無しさん [2010/01/28(木) 02:10:52 ] 誰か>>259 を教えてください
278 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 02:18:28 ] 依頼者が代行者のコードに苦情を言うのはマナー違反 だが程度問題 偶然の別代行者が代行者のコードを見てあれこれ アドバイスするのは美徳でないとは言い切れない。 別の代行者からコードを受け取ったことがわかって いる時点でコードを渡すのは美徳とは言い切れない。 複数の代行者が同調していたとしても 依頼者の依頼の仕方が悪いと決めつけられ るかは状況依存
279 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 02:33:20 ] >>278 不毛だな 宿題スレ代行者のレスを添削するスレ とか出来そうだ
280 名前:233 [2010/01/28(木) 03:01:29 ] >>236 で回答もらったんですがboolってやつを習ってないんですよね…double.int.charとかは習ったんですが…しかしそれ以外だと出来ないとするとそれが正解ですよね
281 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 07:41:59 ] >>280 bool を int に置き換えればOK
282 名前:デフォルトの名無しさん [2010/01/28(木) 16:20:52 ] >>281 それをintに変えたんですが>>257 で書いてもらった感じで実行もするんですよね…
283 名前:257 mailto:sage [2010/01/28(木) 18:04:29 ] >>282 ん、そうです。自力でかけば力がつくことでしょう。
284 名前:デフォルトの名無しさん [2010/01/28(木) 18:16:16 ] >>283 これじゃダメなんですよね… #include <iostream> using namespace std; int even(int num) { if(0 == sc%2) { return true; } return false; }
285 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:25:57 ] >>284 int main() から実行されますから、int main() を書かなくてはいけません。>>257 をちょっと変えればいいです。がむばってください。
286 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:26:41 ] >>284 じれったいw boolをintに書きかえれ、と教えてもらってるでしょうに。 booをintに。 bool even(int sc){ return (sc%2 == 0); } を int even(int sc){ return (sc%2 == 0); } に。
287 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:26:56 ] >>284 //int even(int num) { int even(int sc) { にしましょう true/falseで返すなら bool even(int sc) { にしたほうがいいと思います。 int even(int sc) { ならば return 1; return 0; としたほうがいいと思います。
288 名前:286 mailto:sage [2010/01/28(木) 18:30:39 ] あ、失礼。 元々、 >>233 > [2] 問題文(含コード&リンク): 入力された数字が偶数なら、trueを返す関数。それ以外ならfalse > [3.3] 言語:C++ なのか。だったら bool even(int sc){ return (sc%2 == 0); } か。
289 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:33:01 ] >>288 return に括弧はいらない。
290 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:41:19 ] 自分で書いて使うだけなら括弧はいらないが、 省略する癖はつけないほうが良い
291 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 18:43:15 ] だからといって return (0)とか return (1.0)とか return ("aho-desuka?") とかはやり過ぎ 式には括弧を付ける癖をつけましょう 失礼しました
292 名前:デフォルトの名無しさん [2010/01/28(木) 18:50:37 ] #include <iostream> using namespace std; int even(int sc){ return (sc%2 == 0); } int main() { int num; cout << "> "; cin >>num; cout << even(num); return 0; } これじゃダメなんですよね…boolっていうの使えないからもう滅茶苦茶ですよね
293 名前:デフォルトの名無しさん [2010/01/28(木) 18:52:44 ] return 0とかreturn 1とかは何か習ったみたいですがboolとかどこにもないんですよね
294 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 19:14:32 ] >>292 #include <iostream> using namespace std; bool even(int sc){ return sc%2==0; } int main(){ int num; cout << ">"; cin >> num; cout << boolalpha << even(num) << endl; return 0; } 習っていようがいまいが、true/falseで返せってのはboolを使えと言う事だから使うしかない。
295 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 19:55:20 ] 1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10458.txt [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限:2010年1月29日16:00まで [5] その他の制限: 特にありません よろしくお願いします。
296 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 19:57:42 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 10個の要素を持つ動的な整数配列を作るプログラムを作成しなさい。 動的な配列へのポインタを整数ポインタに代入しなさい。 次に、ポインタ算術または配列の添字を使って、1から10までの値を配列を構成する整数に代入しなさい。 最後に、代入した値を表示し、メモリを解放しなさい。 [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C++ [4] 期限:2010年1月29日16:00まで [5] その他の制限: 特にありません よろしくお願いします。
297 名前:デフォルトの名無しさん [2010/01/28(木) 20:01:53 ] >>294 三行目に書いたところは、scじゃなくてnumでした。すみません。boolalphaってなんですか?
298 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:04:45 ] >>296 #include <iostream> int main() { int *p = new int[10]; // 動的な配列へのポインタを整数ポインタに代入 for (int i = 0; i < 10; i++) { p[i] = 1 + i; // ポインタ算術または配列の添字を使って、1から10までの値を配列を構成する整数に代入 } for (int i = 0; i < 10; i++) { std::cout << p[i] << std::endl; // 代入した値を表示し } delete p; // メモリを解放 return 0; }
299 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:28:30 ] [1] 授業単元:コンピュータリテラシー [2] 問題文(含コード&リンク): あるファイルの名簿を呼びだし、名前もしくは名字で検索しその結果を新しいファイルに保存する。あるファイルの名簿は特に決められていない。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10456.txt [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン:BCC Developer Borland C++ 5.5.1 [3.3] 言語:C++ [4] 期限:2010年1月29日12:00まで] [5] その他の制限: 上記のプログラミングの他に fp while float else puts gets strlen strcpy strcat 以外は使用しないでください。授業で習っていないので… よろしくおねがいしまつ。 PC規制で携帯からですみません…
300 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:38:42 ] >>295 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10458.txt
301 名前:デフォルトの名無しさん [2010/01/28(木) 20:40:23 ] >>193 今更なんですが、『厳密解』って所に『double exact=63』ってあるんですが、これを計算するプログラムを作るんじゃないんですか?これをプログラムに書いてもいいんですかね?
302 名前:301 [2010/01/28(木) 20:42:52 ] でも //厳密解 の部分は出力される結果は同じですね。入れるとどう違うんですか
303 名前:298 mailto:sage [2010/01/28(木) 20:43:48 ] て、訂正! >>296 さん気をつけて。 ×delete p; // メモリを解放 ○delete[] p; // メモリを解放
304 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 20:44:22 ] >>301 大丈夫?中学校からやり直す?
305 名前:デフォルトの名無しさん [2010/01/28(木) 20:52:41 ] >>304 ?
306 名前:デフォルトの名無しさん [2010/01/28(木) 20:56:54 ] ごめんなさい。納得しました
307 名前:デフォルトの名無しさん [2010/01/28(木) 20:57:01 ] [1] Cプログラミング入門: [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10460.txt [3] 環境 [3.1] OS: Linux [3.2] gcc(すいませんバージョンがわかりません) [3.3] 言語:C [4] 期限: 2010年1月31日23:59まで [5] その他の制限: 特にないです。 お願いします。
308 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:10:31 ] >>299 > fp while float else puts gets >strlen strcpy strcat 以外は使用しないでください。 その条件じゃオレには無理。 //(前略) fin=fopen(filename1,"r");//fout=fopen(filename1,"r"); fout=fopen("kojin.txt","w");//fin=fopen("kojin.txt","w"); for(i=0;i<100;i++) if(fscanf(fin,"%s%s%s%s",&date[i].myouji,&date[i].name,&date[i].jusho,&date[i].denwa)==EOF)break; fclose(fin);//fclose(fout); printf("名前もしくは名字="); scanf("%s",&ss); for(i=1; i<=5; i++){ if(strcmp(ss,date[i].myouji)==0){ //printf("%s %s %d %d\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); fprintf(fout,"%s %s %d %d\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); k=k+1; } if(strcmp(ss,date[i].name)==0){ //printf("%s %s %s %s\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); fprintf(fout,"%s %s %s %s\n",date[i].myouji,date[i].name,date[i].jusho,date[i].denwa); k=k+1; } } fclose(fout);//fclose(fin); }
309 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:21:00 ] [1] C言語プログラミング演習(大学任意科目) [2] コマンドラインで指定された各テキストファイルに対して個別に以下の処理を行うCプログラムを作成 ☆テキストファイルを通読し、各行のインデント深度の最大値を求める(それをNとおく) ☆テキストファイルの先頭から再度読み出し、それぞれの行についてインデント深度がnなら ば、インデント深度をN-nに変更したものを標準出力する。 ☆新しいテキストファイルのNが判明した時点で、その改行とファイル名、改行を標準出力する。 ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合 深度=nとする。 [3] [3-1] Windows XP Professional Edition [3-2] Visual-C++ 6.0 SP6 [3-3] C言語 [4] 2/1迄 [5] stdio.hを使用可 (他は暗黙的にNG)
310 名前:309 mailto:sage [2010/01/28(木) 21:24:53 ] すみません。転記ミスです × ☆新しいテキストファイルのNが判明した時点で、その改行とファイル名、改行を標準出力する。 ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合 深度=nとする。 ○ ☆新しいテキストファイルのNが判明した時点で、改行とそのファイル名、改行を標準出力する。 ここでインデント深度とは、行頭からタブ、空白以外の文字が現れるまでタブがn回(n>=0)現れた場合 深度=nとする。
311 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:32:45 ] >>308 わざわざご返答ありがとうございます。そうですか…無茶振りすいません。 一応引き続き、>>299 お答え出来る方いらっしゃいましたら厚かましいですが宜しくお願い致します…
312 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:40:54 ] >>310 スペースがいくら続こうともタブが一つも無ければ深度=0ですか?
313 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 21:50:33 ] >>311 freopenもダメなんでしょ?
314 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:02:09 ] >>313 すみません。習ってないのでわからないです…
315 名前:デフォルトの名無しさん [2010/01/28(木) 22:03:34 ] [1] 授業単元:プログラミング応用 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10461.txt[3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual studio 2003 [3.3] 言語:C [4] 期限:2010年2月2日正午まで [5] その他の制限: 特にありません よろしくお願いします。
316 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:04:06 ] >>307 ttp://codepad.org/c7Hr0Iqm ヒントがひどいよ(´;ω;`) 一応ヒントに沿う形で書いたけどいろいろ酷い…。 こちらの環境では動いてるけど、そちらの環境で動くかどうか不明。 codepadでOutput: 1 Segmentation faultとか出ちゃってるから。
317 名前:デフォルトの名無しさん [2010/01/28(木) 22:06:10 ] >>315 問題文URLでミスしました。再投稿します。 [1] 授業単元:プログラミング応用 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10461.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual studio 2003 [3.3] 言語:C [4] 期限:2010年2月2日正午まで [5] その他の制限: 特にありません 今度こそ、よろしくお願いします。
318 名前:316 mailto:sage [2010/01/28(木) 22:08:10 ] あ、Resultsの中の for (i = 0; i < N; i++) printf("%d:%d\n", i, COM[i]); for (i = 0; i < n; i++) printf("%d:%d\n", i, MAN[i]); printf("count = %d\n", count); この三行はデバッグ用なので不要です。消しておいてください。
319 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:26:00 ] >>311 その条件で問題を解くのは不可能だから、 あきらめるか、条件を見直すしかないね。
320 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:39:27 ] >311 あ、コマンドラインパラメタとパイプ・リダイレクトを使えばいけるな。 type 入力ファイル | 宿題.EXE 検索語句 > 出力ファイル こんな起動方法はあり?
321 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:43:19 ] >>307 どうぞ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10462.txt
322 名前:デフォルトの名無しさん [2010/01/28(木) 22:44:06 ] >>316 >>318 どうもありがとうございます。一人ではどうにもなりませんでした。
323 名前:デフォルトの名無しさん [2010/01/28(木) 22:49:08 ] >>321 ありがとうございます! なんとかのりきれそうですm(_ _)m
324 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 22:52:05 ] >>320 あの… 名簿の人数が大体5人と考えてみても無理でしょうか? その中から一人検索するので… 条件が習ってる範囲なので変えることができないのですが。
325 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:03:15 ] >324 データ数は関係ない。 その条件だとファイルの読み書きができない。 使用可能関数に記述もれは無いのか? fで始まる名前の関数を習って無いのか?
326 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:07:18 ] >>299 > fp while float else puts gets >strlen strcpy strcat 以外は使用しないでください。 これだけだと、ファイルに入出力できない。 >>320 タソが言ってる方法もあるが・・・ > 名簿の人数が大体5人と考えてみても無理でしょうか? 人数は関係ないかと。 というか、名簿のフォーマットは決められていないですか? ファイルの入出力関数について何も習ってないならば、 この問題は解けないと思います。 とりあえず、講義資料とかノートとか読み返して、 fgetsとかfputsとかを習っていないか確認してください。
327 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:15:56 ] >>324 >上記のプログラミングの他に fp while float else puts gets >strlen strcpy strcat 以外は使用しないでください。授業で習っていないので… それ、あなたが勝手に付けた条件だよね? 上記に記載されていない fopen,fclose,scanf,printf,struct等使ってるけど それはいいの? fopenやfcloseは使ってるのに fprintf,fgets,fputs等のファイル入出力関数は使っちゃダメなの? ・問題文は、出題されたまま全文を書いてください。
328 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:16:59 ] 翻弄された回答者が(´・ω・)カワイソス
329 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:17:22 ] >>320 >>326 すみません!!見直したところfscanf、fprintf、fputsとfgetsも使ってました。 不注意でご迷惑お掛けしました…
330 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:18:53 ] >>329 なら308でいいよね?
331 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:29:58 ] >>330 それがEOFとbreakがつかえないもので…すみません。
332 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 23:45:17 ] 連投すみません。これ以上書くと私物化も甚だしいので控えます。 頂いたヒントで頑張ります。情報不足でご迷惑お掛けしました。 本当にありがとうございました。
333 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 04:07:06 ] 下痢便飲みたいのかそうか
334 名前:デフォルトの名無しさん [2010/01/29(金) 16:23:54 ] [1] 授業単元:C言語演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10465.txt [3]環境 [3.1] OS:WindouwsXP [3.2] コンパイラ名とバージョン:Microsoft VisualC++2008 Express Edition [3.3] 言語:C [4] 期限: (2010年1月31日17:00まで [5] その他の制限:特になし ファイルの入出力について理解したいので、 すみませんが、よろしくお願いします。
335 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 17:43:11 ] >>334 #include <string.h> #include <stdlib.h> #include <stdio.h> int main(void) { FILE *fp,*fin; char s[256]="gomibako"; char fname[256], buff[256]; long pos; printf("出力するファイル名を入力せよ。\n"); fgets(fname,256,stdin); //スペース入りファイル名なので fname[strlen(fname)-1]='\0'; //\n → \0 strcat(fname, ".txt"); fp = fopen(fname, "a"); fin = fopen("word.txt","r");//fpは"a"追記モード if ((fp == NULL)||(fin == NULL)) { printf("ファイルオープン失敗。\n"); exit(EXIT_FAILURE); } fseek(fp,0,SEEK_END); //ファイル名出力は最初の1回目のみのようなので pos=ftell(fp); if(pos==0) fprintf(fp,"%s\n",fname); while(fscanf(fin,"%s",buff)!=EOF) if(strcmp(buff,s)!=0) fprintf(fp,"%s\n",buff); fclose(fin); fclose(fp); printf("読み込み完了/書き込み完了。\n\n"); return 0; }
336 名前:デフォルトの名無しさん [2010/01/29(金) 20:20:50 ] [1] 授業単元: 情報処理B [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10463.txt [3] 環境 [3.1] OS: Windows vista [3.2] Cygwin [3.3] 言語: C [4] 期限:2月9日まで [5] その他の制限: とりあえずstrcpyは習っています。 課題5以外はプログラム中の省略を補っていただきたいです。多いですがよろしくお願い致します。
337 名前:200 mailto:sage [2010/01/29(金) 22:56:13 ] >>200 ですがおかげさまでプログラムを完成させられました。 do{ }while(next_permutation(intary.begin(), intary.end())); を使いました。 ところで>>200 ではn!もしくはn!×n!の組み合わせを計算することになりますが nが10だとn!×n!は1.31681894 × 10^13もの組み合わせになります。 この辺をうまいことごまかす方法ってないものでしょうか。 厳密な解でなくともそこそこの解を短時間で計算できる、みたいな・・・。