1 名前:デフォルトの名無しさん [2008/02/04(月) 23:32:19 ] あなたが解けない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++の宿題を片付けます 103代目 pc11.2ch.net/test/read.cgi/tech/1200318925/
304 名前:_ mailto:sage [2008/02/17(日) 11:52:33 ] 三 |┃┃ 三 |┃┃ |┃┃ ∧∧ ..|┃┃ 三 ( ;). |┃┃ピシャッ! / ⊃.|┃┃
305 名前:デフォルトの名無しさん [2008/02/17(日) 12:15:33 ] 【質問テンプレ】 [1] 授業単元: コンピュータ実習 [2] 問題文:(下記のコードに書き加えてファイルに出力しなさい) [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: 今日 [5] その他の制限: なし #include <iostream> #include <string> #include <fstream> class write{ private: string input; public: string input(){ cout<<文字列をファイルに書き込みたい; cin>>input; return input; }}; int main(){ write ob; //書き込み処理 //書き込み処理終了 return 0; }
306 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:57:43 ] //書き込み処理 fstream("ファイル", ios::out) << ob.input(); //書き込み処理終了
307 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:06:25 ] >>306 ofstream使えよ。
308 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 17:48:53 ] [1] 授業単元: Cプログラミング [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6057.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 明日まで 問題はC言語のシグナルの送信に関するものです。 よろしくお願いします。
309 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 18:10:27 ] シグナルハンドラとしてSIG_IGNを使う。 あと、シグナルハンドラの中では、非同期シグナルセーフな関数以外は呼び出さない方がいい。
310 名前:デフォルトの名無しさん [2008/02/17(日) 21:55:38 ] [1] 授業単元:C言語II [2] 問題文(含コード&リンク) シェルを実装していますが、分からないのは入出力リダイレクションの処理です。 たとえばプロンプトから $ cat 123 > textout と、入力して 引数の'>'(もしくは'<') で入出力を切り替える処理を考えています。 どうすればいいのでしょうか? [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc 3.4.4 [3.3] 言語:C [4] 期限: 2008年2月29日
311 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 00:26:19 ] >>308 とりあえずsignal.hなるものの存在を初めて知った で、<unistd.h>は「unix standard」。 ここまで来ると、Windowsの人間はまるでついていけない……
312 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:30:54 ] >>308 [kill-main.c] #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> #include <sys/types.h> pid_t pid; void ctrlc(void){ kill(pid,SIGUSR1); } int main(){ unsigned int c; if((pid = fork()) == 0){ execl("kill-child","kill-child",(char *)0); perror("execl"); exit(EXIT_FAILURE); } if(signal(SIGINT,(void*)ctrlc) == SIG_ERR){ perror("sigint"); exit(EXIT_FAILURE); } do{ printf("Send signal?(C-c/n)\n"); while((c=getchar()) != EOF) if(c != '\n') break; if(c == 'n') exit(0); }while(c != EOF); }
313 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:32:35 ] >>308 [kill-child.c] #include <stdio.h> #include <stdlib.h> #include <signal.h> void siguser(void){ static int n = 0; printf("Signal received %d times\n",++n); if(n == 10) exit(EXIT_SUCCESS); } int main(){ signal(SIGINT,SIG_IGN); if(signal(SIGUSR1,(void *)siguser) == SIG_ERR){ perror("signal"); exit(EXIT_FAILURE); } for(;;){} } 子まで書き換えないとならないのがミソだな
314 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 04:08:11 ] >>312-313 御回答ありがとうございます。 SIG_IGNを使いシグナルを無視させることで無効化するんですね。 勉強になりました!ありがとうございます。
315 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 14:14:22 ] [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク):Cシェルを作成しなさい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:2008年2月19日まで [5] その他の制限: なし C言語でシェルを作っているのですが、 >310さんと同じく'>'の入力リダイレクションの処理が分からないです。 自力で途中までは書いているのですが、キー入力の分割処理が上手く行きません。 void parseitファンクション内の処理がおかしいと思われます。 助けて頂けると幸いです。 ソースファイル↓ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6060.c
316 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 16:43:12 ] 誰か292頼みます
317 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 18:15:57 ] >>316 問題が理解できないのでどうしようもない まずnステップっていうのがわからない そもそも、1ステップでどういう動きをするんだ? ランダムで X 方向 or Y 方向に 1つ動くっていうのか、 それとも、X 方向にランダムでいくつ、Y方向にランダムでいくつって言う風に動くのか あと表示のしかたも、各ステップ毎のX,Yの値をただ単に並べればいいのか、 図で見せるのかわからない
318 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:56:21 ] >>315 void parseit 内で、 *params++ = command; の後のパラメータ分文字を読み飛ばす処理内で、">"の処理をしているのが不味い a.out > aaa ↑ ここでパラメータ分文字を読み飛ばす処理は終了するので、次のパラメータを探す処理に 移ると、次のパラメータは、">"になる ">" の処理もそのままだと、 ファイル名の前後に空白文字が入る可能性がある(問題ないのかもしれないけど) あと、void parseit 関数の終わりの*params = '\0'; は、 *params = NULL; じゃね
319 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:16:23 ] >>318 なるほど、そう言うのが原因なんですね。 確かにテストをすると空白らしくものがファイル名と'>'の前(おそらく)に入ってると思われます となると、やはり新しいファンクションを増やした方がてっとり早いのでしょうか?
320 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:59:51 ] >>319 横レスになるけど. 先に ">"の前後で文字列を切り分けてからコマンド部分をあらためて切り分ける方法もあるんじゃないかな。 標準関数を使っていいのなら切り分けはこんな感じ↓ char redirect[20]; // リダイレクト先 _Bool test_parse( char *command, char **param ) { _Bool ret = false; char cmd[256]; // コマンド部 int result; // >の前後で文字列を切り分け result = sscanf( command, "%255[^>]%*[>]%19s", cmd, redirect ); if( result > 1 ) { ret = true; } getToken( cmd, param ); // ここでコマンド部をパラメータと切り分ける関数を別に作って呼ぶ return ret; } こうするとローカル変数cmdとredirectにそれぞれ>の前後で切り分けた文字が入るはず。 ついでにretで1以外が入っていた場合はredirectにも代入があったことになるからフラグでそれを知らせてます。
321 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 03:51:32 ] >>320 レス感謝です。 getTokenでparseitと同様の処理をさせれば良いのでしょうか?
322 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 06:43:13 ] >>321 4時か、がんばってるねぇ… とっくに寝てそうだけど、getTokenでparseitのparamsに入れていく部分の処理を入れればいいと思う。 元のソース見る限りだとredirectは特に同じことをしてなさそうに見えるから。
323 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 06:54:35 ] 試しに>>320 の教えてくれたsscanfを使ってみたのですが、 未だに空白が付いて正しい結果を出しません。 もしかしたらメイン内でやったのがいけなかったのかもしれません。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6062.c
324 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 07:09:34 ] あー 空白がつくのって "a.out params > text.txt" みたいなときに " text.txt"がredirectにはいるってこと? VC++でコンパイルしたからGCCでは挙動違うのかな? sscanfの処理を sscanf( command, "%255[^>]%*[> \t]%19s", cmd, redirect ); って修正してもだめ?
325 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 07:13:47 ] すみません>>322 の通りにやると文字化けが生じてしまいます。 もしこれが解決出来れば、test_parseファンクションを使えると思うのですが…。 何か解決方法があったら教えてください。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6064.c
326 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 10:37:19 ] 無事に解決できました。 どうやら問題やはcmdの最後の部分に空白があったため、問題が起きていたようです。 なので、最後尾にNULLを追加したらリダイレクションが正常に完了しました。 >>318 >>320 >>322 >>324 助言ありがとうございました。
327 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 10:39:06 ] >>316 適当解釈。 #include <stdio.h> #include <stdlib.h> #define N 10 void suiho(int *x, int *y) { int r=rand()%4; *x+=((r/2)*2-1)*(r%2); *y+=((r/2)*2-1)*(!(r%2)); printf("(%d,%d)\n",*x,*y); } int main(void) { int i,x=0,y=0; srand(time(NULL)); for(i=0;i<N;i++)suiho(&x,&y); return 0; }
328 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 20:29:30 ] >>327 面白い解釈だ 神龍:どんな問題でも一つだけ聞き流してやろう ってのが思い浮かんだ
329 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:26:31 ] 誰か終わってないリストチョーライ。
330 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:00:26 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク):2問ありますkansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6066.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限: 明日まで [5] その他の制限: 問題文にそって作る お手数おかけしますが、よろしくお願いします。
331 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:27:31 ] 因数因数って引数だろ、「ひきすう」で変換すればちゃんと出てくるのに・・・ ってもやもやしながら読んでたらばおで噴いたwwwwwww
332 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:37:55 ] 構造体変数名がlist_tっていうのが違和感あるんだが,これって変数が list_tって名前なんだよな? xxx_tって普通,型名につける方法じゃないっけ?
333 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:18:56 ] ば、ばお・・・ごめんなさいorz >>332 問題文を確認したら構造体変数名はlist_tとありました。 これが誤っているとすると typedef struct list{ 〜 } list_t; って感じですかね?
334 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:13:00 ] typedef struct list_t{}list;だろ _tは普通使わないと思うけど
335 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 00:15:26 ] >>334 へぇ 普通はそうなのか 普通って難しいな
336 名前:デフォルトの名無しさん [2008/02/20(水) 00:27:17 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6067.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 2/22 [5] その他の制限: よろしくお願いします。
337 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:03:12 ] [1] 情報セキュリティ [2] 問題文(含コード&リンク): C言語プログラムのファイルを読み込んで、バッファオーバーラン の危険性を検出(修正)するサポートツール。 [3] 環境 [3.1]Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2月21 [5] その他の制限: なし
338 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:07:57 ] さらっと書いてるけど>>337 は相当むずかしくないか?
339 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:11:45 ] gets()が検出できればおkだったりしてな
340 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:16:50 ] つ lint
341 名前:337 mailto:sage [2008/02/20(水) 01:25:54 ] * get * sprintf * strcat * strcpy * vsprintf が検出できれば OKです
342 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:28:57 ] 先に書けよ
343 名前:337 mailto:sage [2008/02/20(水) 01:33:14 ] すみません。
344 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 04:14:35 ] ・getってなんだよ。 ・scanfはスルーかよ。
345 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 04:23:51 ] >>337 #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFMAX 1024 int main(int argc, char *argv[]) { FILE *fp; char buf[BUFMAX]; int line = 0; if (argc < 2 || (fp = fopen(argv[1], "r")) == NULL) { printf("Usage: a.out [assemble code file]\n"); exit(0); } while (fgets(buf, BUFMAX, fp)) { ++line; if (!strcmp(buf, "\tcall\tscanf\n") || !strcmp(buf, "\tcall\tgets\n") || !strcmp(buf, "\tcall\tsprintf\n") || !strcmp(buf, "\tcall\tstrcat\n") || !strcmp(buf, "\tcall\tstrcpy\n") || !strcmp(buf, "\tcall\tvsprintf\n")) { printf("find at line%d: %s", line, buf); } } fclose(fp); return 0; } こんな感じでいいのかな。アセンブリコードに対して検索した方が楽だよな。
346 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 04:35:42 ] >>345 その発想はなかったわw
347 名前:337 mailto:sage [2008/02/20(水) 07:49:57 ] ありがとうございます
348 名前:デフォルトの名無しさん [2008/02/20(水) 11:53:11 ] >>330 1問目 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6068.txt 構造体変数名はlist_tとする意図が汲み取れないが、それは無視して作った。 構造体のtypedefした名前をlist_tとするの間違いじゃなかろうか・・・
349 名前:デフォルトの名無しさん [2008/02/20(水) 12:13:13 ] >>330 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6069.txt 問題をそのまま書いた方が良いと思うよ・・・
350 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:57:42 ] >>336 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6070.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6071.txt 一応作ってみた 考え方が良く分からんから、まぁたぶん大丈夫だろう的なレベル
351 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:47:15 ] >>348-349 ありがとうございます。
352 名前:デフォルトの名無しさん [2008/02/20(水) 21:23:03 ] >>350 ありがとうございます
353 名前:デフォルトの名無しさん [2008/02/22(金) 00:51:17 ] [1] 授業単元: プログラミング実習 [2] 問題文(含コード&リンク): ・リスト構造 アルファベットの文字列をいくつか読み込み、それを、アルファベット順にソートし、以下のコマンドが入力された場合、それぞれの命令を実行せよ。 条件として、リスト構造が使われていること、サブ関数の呼び出し(単純なものでもよい)が使われていること、malloc関数が使われていること。 p :入力された文字列を表示する。 a :指定された文字列をリストに追加する。(アルファベット順に並ぶように) d :指定された文字列をリストに削除する。(不要になった記憶領域はfree()を使って開放すること。また、指定された文字列がリストに無い場合は、その旨を表示。) q :プログラムを終了する。 ? :使用可能なコマンドの一覧を表示する。 end:データ入力の終了 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:2月26日まで [5] その他の制限: こんな感じです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6072.txt できればなるべく簡単な方法でお願いします。
354 名前:353 [2008/02/22(金) 00:54:56 ] ごめんなさい、訂正です。 × d :指定された文字列をリストに削除する。 ○ d :指定された文字列をリストから削除する。
355 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 02:55:06 ] >>353 BUFSIZE文字以上の入力があった場合に異常動作を起こす他、色々と問題・手抜きは抱えてるが少なくともその実行例は通る ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6073.c
356 名前:353 [2008/02/22(金) 03:24:27 ] >>355 ありがとうございます。 しかし、まんまコピペでコンパイルが通りませんでした… そしてNode型とかようわからん件…ごめんなさい低級で とりあえず自分なりにいじってみます。ダメだったらまたくるかも。
357 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 03:27:56 ] >>356 あぁ、VC++2008でコンパイルしたから気付かんかったけど C99形式のコメント(//〜)を使ってるからそれかもしれん その部分を全部消してみてくれ
358 名前:353 [2008/02/22(金) 03:50:47 ] >>357 消してみましたが、やはり同じようです。 とりあえずvistaですが、bccでまんまコピペでコンパイルしてみた結果、以下が表示されました。 list.c: 警告 W8060 list.c 24: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 24: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 32: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 32: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 56: おそらく不正な代入(関数 deleteNode ) 警告 W8060 list.c 56: おそらく不正な代入(関数 deleteNode ) エラー E2468 list.c 100: void 型の値は許されない(関数 appendProc ) 警告 W8019 list.c 100: コードは効果を持たない(関数 appendProc ) エラー E2468 list.c 114: void 型の値は許されない(関数 deleteProc ) 警告 W8019 list.c 114: コードは効果を持たない(関数 deleteProc ) エラー E2468 list.c 136: void 型の値は許されない(関数 main ) 警告 W8019 list.c 136: コードは効果を持たない(関数 main ) *** 3 errors in Compile ***
359 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:01:06 ] >>358 コメントを消した状態ならこっちではANSI C準拠の設定でgcc通る(警告は出る)以上分かりかねる bcc捨ててくれとしか言い様がない 使用したgccは以下 gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
360 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:21:12 ] これはbccのバグっぽい
361 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:24:08 ] 多分三項演算子とfgetsの合わせ技でエラーになってんだろうな bccだとvoid fgetsで定義されてるとかか?
362 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:26:26 ] [1] 授業単元: 基礎プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6074.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:本日正午まで(恐らく本日中であればなんとかなります) [5] その他の制限: なるべく自分でどうやっているプログラムなのか理解した上で提出した方がいいため、 if文やfor文使いまくりでもいいので、簡単なプログラムにしていただけると助かります。
363 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:37:40 ] >fgets(buf, BUFSIZE, stdin) ? 0 : exit(1);
364 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:39:46 ] >>358 fgets(buf, BUFSIZE, stdin) ? (void)0 : exit(1); これで回避できるみたいだが、よくわからんな。 bccの3項演算子の扱いが謎。
365 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:46:17 ] voidとそうじゃないものを並べちゃいけないみたいだね。 void同士ならOKらしい。
366 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 05:53:24 ] >>362 とりあえず適当 (1) #include<stdio.h> void num2roma(int num,const char roma[]){ const int mod = num % 10; const int div = num / 10; const int mod5 = num % 5; int i; if(div)num2roma(div,roma+2); if(mod5==4){ putchar(roma[0]); putchar(roma[mod/4]); }else{ if(mod5!=mod) putchar(roma[1]); for(i=0;i<mod5;++i) putchar(roma[0]); } } int main(void){ int num; while(scanf("%d",&num)==1){ num2roma(num,"IVXLCDM"); putchar('\n'); } return 0; }
367 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 05:54:59 ] (2) #include<stdio.h> int main(void){ int count[100]; int i,j,h; for(i=0;i<100;++i){ count[i] = 0; } for(i=0;i<30;++i){ if(scanf("%d",&h) != 1){ break; } ++count[h/5]; } for(i=0;i<100;++i){ if(count[i] != 0){ printf("%d...%d%8d : ",i*5,i*5+5,count[i]); for(j=0;j<count[i];++j){ putchar('*'); } putchar('\n'); } } return 0; }
368 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:01:06 ] >>362 >>366 はでかいミスがあった それは忘れてこっちを使ってくれ (2) 3999までの正整数をローマ数字にする int2roman.cpp ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6075.txt
369 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:32:04 ] ここのスレはソースをはってどこがおかしいか おしえてくれるスレですか? かなりながいソースなんですが。
370 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:45:43 ] >>369 そりゃもう手取り足取り どれだけ長いソースでも宿題であれば片付けるよ それが2ちゃんクロリティ
371 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:50:06 ] ただちょっと専門的な話だから 流れをかいたファイルといろいろこみの tar.gz形式のファイルでうpします あとで。
372 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:53:24 ] >>371 教授から出されたような難解で困難な宿題?
373 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:14:14 ] [1] 授業単元: 認識 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6076.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:月曜日までといいたいところですが [5] その他の制限: おねがいします。わからないことがあれば聞きます。
374 名前:373 mailto:sage [2008/02/22(金) 23:20:53 ] www12.axfc.net/uploader/18/so/Ne_12654.gz.html こちらです すいません。
375 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:24:36 ] >>373 件のファイルが既にありません。 しかも、「実行ファイルを実行せよ」というのはかなり怪しいです。 ウィルスなら誰も手を出しません。
376 名前:373 mailto:sage [2008/02/22(金) 23:35:20 ] //としてるとこは全部消してもらってもかまいません。 あとでみたらログチェックしたままのファイルでした
377 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:47:07 ] 誰もがDVIファイル読める環境にあると思うなよw せめてPDFくらいは・・・ あと実行ファイルは誰も実行せんがな(´・ω・`)
378 名前:373 mailto:sage [2008/02/22(金) 23:50:28 ] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6077.txt すいません。
379 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:53:25 ] DVIを読むためにいろいろと導入するのが理系の学生だと思うけどなぁ…… でも俺の周りでdvioutとかGhost Scriptとかまで入れてるのは二三人しかいないなぁ…… そもそもTeXすら入れてないってやつが多いし…… Linuxのパッケージ?にはUNIX派生のいろいろが入っているからいいんだろうけど……
380 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:55:59 ] このスレって理系の学生が答えるスレだったっけ?
381 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:58:44 ] >>378 そのファイル読んだけど、やってる処理に関する知識を持ってないから全く分からん その点も説明して貰わんと、分かる人間しか答えられんぞ
382 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:19:49 ] 余計な文消して文消して コメントをいれるようにしてもう一度うpします。 そっちのほうがわかるとおもうので。
383 名前:373 mailto:sage [2008/02/23(土) 13:37:46 ] gaiyou.txtと図をいれてみました。pngもしくはjpg形式です。 お願いします。 www12.axfc.net/uploader/18/so/Ne_12711.gz.html
384 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:16:36 ] チェックしてみようかと思ったが、 コンパイルすら通らずにエラーや警告出まくりなんで止めた。
385 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:21:04 ] コンパイルはとおるけど
386 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:21:51 ] >>384 ヘッダファイルをチェックしてみては? Windowsには無くてLinuxにはある、っていうヘッダがたくさん含まれている可能性もある
387 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:14:26 ] tarファイルって書いてあるのにgzなのが気になって仕方が無い
388 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:27:17 ] uploader側で末尾のピリオド以降を拡張子と自動認識されてるんじゃないの
389 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:52:27 ] それにしてもtar.gzファイルとかtgzファイルとか書き方があると思った
390 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:02:52 ] 宿題がこないね
391 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:08:25 ] #include <stdio.h> void main(void) { FILE *kadaip; char buff[256]; int n; printf("文字を入力してください!\n"); printf("(Enterを入力すると終了)\n"); scanf("%c",&n); kadaip = fopen("C:\\kadai.txt","w"); if(kadaip != NULL) { gets(buff); while(buff[0] !='\0') { buff [256]= fprintf(kadaip,"%c\n",n); printf("文字を入力してください!\n"); printf("(Enterを入力すると終了)\n"); scanf("%c",&n); gets(buff); } if(buff < 0) printf("出力エラー!\n"); fclose(kadaip); } else printf("openエラー入力エラー!\n"); } 全然わからなくて、とりあえず作ってみたのがこれです。間違いだらけだと思いますが教えていただけたら嬉しいです。 あと、プログラムの終了条件は文字データの入力がないときです。よろしくお願いいたします。
392 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:09:55 ] [1] 授業単元:プログラミング [2] 問題文:キーボードから入力した内容をファイルに保存して表示するプログラムを作りなさい。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: visual stdio [3.3] 言語: C [4] 期限:2月25日まで [5]上のものです。間違って先にプログラムの方を投稿してしまいました。 環境等はこちらです。すみませんでした。
393 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:22:40 ] >>392 #include <stdio.h> int main(void) { FILE *kadaip; char buff[256]; int n; kadaip = fopen("C:\\kadai.txt","w"); if(kadaip != NULL) { printf("openエラー入力エラー!\n"); return 1; } while(1) { printf("文字を入力してください!"); printf("(Enterのみを入力すると終了)\n"); gets(buff); if(buff[0] =='\0') break; n=fprintf(kadaip,"%s\n",buff); if(n<=0) { printf("出力エラー!\n"); break; } } fclose(kadaip); return 0; }
394 名前:393 mailto:sage [2008/02/24(日) 00:01:01 ] >>393 が間違ってたので訂正 if(kadaip != NULL) ↓ if(kadaip == NULL)
395 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:04:26 ] 373ですけど どうですかね? バグはみつかりましたか?
396 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:58:57 ] >>394 訂正のとおりに実行してみたら無事にできました。お早い返答ありがとうございました。
397 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:54:24 ] www.nicovideo.jp/watch/sm2417405 これか
398 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:00:08 ] >>397 どれだよw
399 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:09:19 ] www.akibablog.net/archives/2008/02/hardcore-080221.html こちらか
400 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:10:21 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 巡回セールスマン問題の厳密解を求めるプログラムを作成せよ [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC 2008 Exp [3.3] 言語: どちらでも可 [4] 期限: 2/25 12:00 ごろ 動的計画法で求めようとしているのですが、最小コストは求まったものの そのルートを求める方法がいまいちわかりません。 dist[a][b] には a -> b の距離が入っています (a->b = b->a) n は巡回頂点数です kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6084.txt
401 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:13:14 ] >>400 ちょっと質問 ソースとか全然みてないでいうんだが、問題文は「厳密解」になってるけど 動的計画法って「近似解」を求める方法じゃない?
402 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:19:46 ] >>401 すまn 漏れの勘違いだったorz
403 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:00:32 ] >>400 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6086.c ・cost のサイズがでかすぎで手元でコンパイル通らなかったので減らした ・n や dist や CITY_NUM の定義が分からなかったので適当に補間した 以後ソースを挙げるなら定義の部分も含めてくれ 実行可能であることが最も望ましい
404 名前:403 mailto:sage [2008/02/25(月) 02:01:47 ] >>403 >コンパイル通らなかったので減らした これは間違いで、コンパイルは通ったが実行時エラーが出たので減らした