1 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:40:55 ] あなたが解けない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++の宿題を片付けます 109代目 pc11.2ch.net/test/read.cgi/tech/1212895856/
684 名前:637 mailto:sage [2008/06/25(水) 18:38:29 ] >>683 そうか、テンプレがw >>613 [1]回答レベル:ある程度検証済み [2] コード:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7062.txt [3]環境 Windows/VC7/C およびLinux/gcc4.1.2 [4]コメント きれいではなくて申し訳ないんだけど、double型の構造を元に2進変換したつもりです。 負の場合どうするのか分からなかったので、とりあえず符号だけつけてます。 Windowsならリトルエンディアンきめうちで処理をしてもいいのかもしれないけれど、一応。 正の整数についてはWindowsの電卓を使って検証しました。 小数についてもある程度検証してそれらしい結果を確認しています。 負数については、ごめんなさい><
685 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:48:08 ] 累計 50 49 48 47 46 45 44 43 42 41 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 累計 を一次元配列のみを使ってどうやって書けますか?
686 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:49:07 ] >>685 ずれてすみません 縦累計と横累計ということです><
687 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:57:14 ] >>685 これと同じかな pc11.2ch.net/test/read.cgi/tech/1212895856/850 pc11.2ch.net/test/read.cgi/tech/1212895856/920 このレスをしたの俺なんだが、ネタレスのつもりだったのに 感謝されて非常に困惑した記憶がある
688 名前:デフォルトの名無しさん [2008/06/25(水) 18:59:59 ] x68000.q-e-d.net/~68user/net/c-ftp-1.html をみてCでftpクライアントのプログラムを作成しましたが サンプルソースの224行目が実行されて 「150 Opening ASCII mode data connection」がサーバから返却された後 226行目が実行されて 「226 Transfer complete」がサーバから返却されるまで180秒かかってしまいます。 何故でしょうか? サーバはredhatlinux上でProFTPD 1.3.1が動いています。 クライアントは上記サーバと兼ねています。下記のようなログがでます。 <-- 220 ProFTPD 1.3.1 Server (ProFTPD Default Installation) [127.0.0.1] --> USER ユーザ名 <-- 331 Password required for ユーザ名 --> PASS パスワード <-- 230 User ユーザ名 logged in --> PORT 127,0,0,1,229,242 <-- 200 PORT command successful --> RETR ファイル名のフルパス ファイルの中身 <-- 150 Opening ASCII mode data connection for ファイル名のフルパス (13 bytes) <-- 226 Transfer complete(これが出るのは1つ上の行が出力されてから180秒後) --> QUIT <-- 221 Goodbye.
689 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 19:05:26 ] >>688 なぜここに? とりあえずサーバのログおよびパケットキャプチャをしてみて原因探るしか。
690 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 19:07:50 ] >>687 あ、同じですね>< 明日提出なんですがさっぱりなんです
691 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:14:21 ] >>690 >>685 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7063.c
692 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:24:00 ] >>691 ありがとうございます まだ入門編なので、複雑でよく分かりません>< これ以上簡単に表現できないのですか?
693 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:30:17 ] >>692 理解しようとする気があるならちゃんと授業中に理解しようね 教員には「沢山勉強してわかるようになりました」って言っておけばなんとかなる
694 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:33:53 ] >>693 すみません 自力でやってみます ありがとうございました><
695 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:38:57 ] #define が見慣れないだけか?ROWを10にCOLを5に書き換えれば良いが もちろんそれが分かっていれば、そんなことせんでROW と COL で定義し 後はそれらを変更することでそれに応じて結果を出すソースのままにしときゃええがな
696 名前:デフォルトの名無しさん [2008/06/25(水) 20:41:00 ] [1] 授業単元:プログラミングT [2] 問題: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7064.txt [3.1] OS: WindowsXp [3.2] コンパイラ名とバージョン:visualstdio 2008 [3.3] 言語:C [4] 期限:6月29日 [5] その他の制限:なし。 よろしくお願いします.
697 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:45:22 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7065.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限:無期限
698 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 20:48:41 ] >>695 #defineは分かります! tr,tcというのはトータルという事ですね。事故解決しました! ありがとうございました
699 名前:デフォルトの名無しさん [2008/06/25(水) 20:52:03 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 構造体person型を自己参照的構造体(下の例を参照)にし、配列に入力していたデータを単方向連結リスト構造に入力せよ。 ファイルからデータを入力したリストの先頭を引数として、入力した年齢と一致する人物をリスト内から検索し、該当人物がいれば表示するプログラムを作れ。 自己参照的構造体とは、構造体のメンバの中に自分と同じ型の構造体のポインタ変数を持つ構造体のことである。 単方向連結リスト構造とは、自己参照的構造体で次の要素をポインタを使って一定の方向に辿るデータ構造である。 (読む込むファイルの例) 入力するリストの先頭 1 20 田中 2 40 大田 3 35 井上 7 60 斉藤 4 23 佐藤 (自己参照的構造体) struct person{ int no,age; char name[40]; struct person *next; } [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VisualStudio2005 [3.3] 言語:C [4] 期限: できるだけ早くお願いします。
700 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:36:28 ] >>699 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7066.c
701 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:37:40 ] >>699 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7067.c
702 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:42:07 ] >>699 [1]コード品質:模範解答(丸写ししても、独力で同じ品質のコード 書いても提出すると心証悪くします。) [2]コード kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7067.c [3]普通の C処理系でコンパイルできます。 [4]品質を落としたコードを提出して下さいね。(難しいですけど)
703 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:45:49 ] >>699 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7068.c
704 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:47:56 ] >>700-703 なんでロダあらしてんの?ここのログも。 もうちょっと落ち着こw
705 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:52:02 ] >>704 >[4] 期限: できるだけ早くお願いします。 じゃね?w
706 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:55:54 ] >>704 意味が分からんけど >>702 は無関係
707 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:59:38 ] >>704 ちょこちょこみてるけど>>700-703 が同じソースだったので。 消しては次消しては次、と。なんじゃろ? >>702 は無関係なのですか。
708 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:06:50 ] どなたか>>572 お願いします
709 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:10:02 ] [1] 授業単元: Cプログラミング演習 [2] 問題文(含コード&リンク) 2^nの計算 n=0〜30に対して、2~nを計算して出力する。結果の最大桁数は10進数10桁であるので、 long int型の変数をしようすること。 なお、再帰法を用いてもよい 実行例 2** 0=1 2** 1=2 2** 2=4 ・ ・ ・ 2**30=1073741824 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: (visual studio 2005 ) [3.3] 言語: (C言語) [4] 期限:明日まで [5] その他の制限: (シンプルなプログラムでお願いします)
710 名前:613 mailto:sage [2008/06/25(水) 22:15:54 ] >>637 (>>684 ) ありがとーございますっ! 自分もcygwin(windows)でコンパイルして、 それなりに検証しましたが、十分機能しているようです! あとは自分で一文ずつ動きを見て、内部表現を書き出し、 改良していこうかと思います。 えっと、doubleは64bitの8byteであっていたかと思います。 なんにせよ、ありがとうございました!!
711 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:15:57 ] >>709 #include <stdio.h> int main() { int i; long int n = 1; for (i = 0; i<=30; i++) { printf("2** %d=%d\n", i, n); n *= 2; } return 0; }
712 名前:637 mailto:sage [2008/06/25(水) 22:18:35 ] >>710 きれいじゃなくてごめんね。 やったことない内容だったのでこちらも楽しめました。 こちらこそありがとうw
713 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:19:51 ] >>711 ビットシフトの方がスマート
714 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:22:34 ] >>713 シンプルなプログラムだから これでいいのだ
715 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:22:36 ] >>713 他人にケチつける前にソース書け
716 名前:711 mailto:sage [2008/06/25(水) 22:23:38 ] >>713 言うのは勝手だが、せめてパッチぐらいおいてって欲しかった。 9,10c9 < printf("2** %d=%d\n", i, n); < n *= 2; --- > printf("2** %d=%d\n", i, 1 << i);
717 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:24:34 ] >>713 勝手に自分基準でスマートとかぬかしてんじゃねーよw
718 名前:711 mailto:sage [2008/06/25(水) 22:24:40 ] ちょw擁護されてたwありがとうwww
719 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:25:31 ] >>713 の人気にぃ〜〜 shit!
720 名前:709 mailto:sage [2008/06/25(水) 22:26:55 ] うお、早いですねw ありがとうございます。
721 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:28:47 ] まるで日本語、C言語トランスレータ君だなw
722 名前:636 mailto:sage [2008/06/25(水) 22:38:06 ] どなたか636をお願いします。 期限は後日6/26午後3時です。 課題の追加・補足はありません。
723 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:40:05 ] >>636 暗号文でおk
724 名前:709 mailto:sage [2008/06/25(水) 22:50:21 ] すいません、あと2問分からないのがあるので できればお願いします。 [1] 授業単元: Cプログラミング演習 [2] 問題文(含コード&リンク) 2つの正の整数a,bを入力して、ユークリッドの互除法により最大公約数(GCM)を 求める。ユークリッドの互除法は次の手順により最大公約数を求める方法である。 (1)a,bの大きい方をa、小さい方bとする。 (2)aをbで割った余りをcとする。c=0ならばbが最大公約数となる。 (3)c≠0ならば a←b b←c として、(2)に戻る。 実行例 入力データ:a = 88 b = 256 GCM = 8 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: (visual studio 2005 ) [3.3] 言語: (C言語) [4] 期限:明日まで [5] その他の制限: (シンプルなプログラムでお願いします、ポインタなどはまだ使えません)
725 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:52:17 ] 失礼します (1)階乗を再帰を用いずに表示 という問題なんですが教えてください。
726 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:53:28 ] printf("階乗");
727 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:55:10 ] ワロタ
728 名前:636 mailto:sage [2008/06/25(水) 22:56:16 ] >>723 いえ、内容は指定の暗号文を復号するプログラムを作成せよです。 課題内容で仕様など不明な箇所があったら言ってください。
729 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 22:59:16 ] >>728 ようするに "KOUKA" がどこに隠れてるか探せばいいんですよね?
730 名前:709 mailto:sage [2008/06/25(水) 23:12:49 ] もう1問。 すいません、よろしくお願いします。 [1] 授業単元: Cプログラミング演習 [2] 問題文(含コード&リンク) 直角三角形の斜辺の長さをc、ほかの二辺の長さをa、bとしたとき、 a^2 + b^2 = c^2 が成り立つ。これを三平方の定理という。 2以上100以下の整数a,b、cに対して a^2 + b^2 = c^2 を満たす組(a、b、c)をすべて求める。ただし、a≦b≦cとする。 max(a^2、b^2)≦ a^2+b^2 であるから、aとbの値を先に設定して、cの値をmax(a、b)から1ずつ増やし a^2 + b^2 = c^2 (解あり) または a^2 + b^2 < c^2 (解なし) となるまで変化させて求めればよい。 なお、cの値を先に設定して、aとbを求める方法もある。 実行例 a=3 b=4 c=5 a=5 b=12 c=13 a=6 b=8 c=10 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: (visual studio 2005 ) [3.3] 言語: (C言語) [4] 期限:明日まで [5] その他の制限: (シンプルなプログラムでお願いします、ポインタなどはまだ使えません)
731 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:14:00 ] >>636 [1]回答レベル:検証済み [2] コード:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7069.txt [3]環境 Windows/VC7/C およびLinux/gcc4.1.2 [4]コメント ずらす方向の指定とかローテーションの必要性が明記されていなかったので 解が出た方法だけ。 すごいぞ!東京工科万歳!
732 名前:636 mailto:sage [2008/06/25(水) 23:14:43 ] >>729 はい、そうですお願いします。 (例え) 暗号文:huisdfhnauid アスキーコード1行ずらし:oujafkadmioafa これは× アスキーコード1行ずらし:KOUKAkiasdfkao これは「KOUKA」が含まれているので複合化成功 この段階でアスキーコードをずらす処理を終了して、複合化結果の「KOUKAkiasdfkao」を表示する。 という題意です。
733 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:17:09 ] [1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7070.txt [3] 環境 [3.1] OS:Windows vista [3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler [3.3] C++ [4] 期限:6/27 [5] その他の制限:始めたばかりですが特に制限はありません。すみません、どうか宜しくお願いします
734 名前:トランスレータ?ないない mailto:sage [2008/06/25(水) 23:20:41 ] >>730 ばかしょうじきに。 #include <stdio.h> int main() { int a, b, c; for (a = 1; a <= 100; a++) { for (b = a; b <= 100; b++) { for (c = b; c <= 100; c++) { if (a*a + b*b == c*c) { printf ("a=%d b=%d c=%d\n", a, b, c); } } } } return 0; }
735 名前:636 mailto:sage [2008/06/25(水) 23:21:18 ] >>731 ありがとうございます!! それにしても動作させてみて笑いました、バレバレですねwww まさかこんな痛い内容とは思いませんでした。
736 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:23:05 ] >>636 > 例えば「ABC]という文をアスキーコードを1つ後にずらすと「BCD」となる。 > このずらした数を総当りで探索すればよい。 KOUKA というなら Kが2つあるわけだから、当然ずらす前も その該当の5文字には同じ文字が1文字目と4文字目にあるわけだが 暗号文:huisdfhnauid ん〜〜〜・・・、小文字と大文字両方含まれる?
737 名前:731 mailto:sage [2008/06/25(水) 23:23:56 ] >>732 その例を見ると俺が作ったの全然ダメかもしれない。 1行ずらしとやらを行うと文字数増えるの? あと問題付属のソースコードが構文エラーありまくりでした。 >>735 とおもったらこれでいいのかよ!
738 名前:636 mailto:sage [2008/06/25(水) 23:27:13 ] >>736 あ〜それは例えの暗号なので解けない&解はないです。 暗号文自体は「KOUKA]の文字列が入っていれば複合化成功なので、 大文字だけ、小文字だけ、大小文字混合のどれでも大丈夫だと思います。 とくに指示はなかったので
739 名前:636 mailto:sage [2008/06/25(水) 23:29:53 ] >>737 まぎらっこしくてすいません。 自分は>>731 の回答で満足なので、本当にありがとうございます。
740 名前:トランスレータ?ないない mailto:sage [2008/06/25(水) 23:36:05 ] >>724 入力方法が記載されていなかったのでカンマ区切りで入力するようにしました(ex. 4,24) #include <stdio.h> int main() { int ia, ib; int a, b, c; scanf("%d,%d", &ia, &ib); if (ia >= ib) { a = ia; b = ib; } else { a = ib; b = ia; } c = a % b; while(c != 0) { a = b; b = c; c = a % b; } printf("入力データ:a = %d\nb = %d\nGCM = %d\n", ia, ib, b); return 0; }
741 名前:デフォルトの名無しさん [2008/06/25(水) 23:39:48 ] 1] 授業単元: c言語 [2] 問題文(含コード&リンク):固定長テキスト形式のファイルの内容を構造体に読み込むプログラムを作成しなさい. [3] 環境 [3.1] Windows [3.2] VC 6.0 [3.3] 言語: C [4] 期限: 6/26 12:00 [5] その他の制限: 固定長テキスト形式のファイルの内容を構造体に読み込むプログラムを作成しなさい
742 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:42:43 ] >>741 ファイルのレイアウト、もしくは構造体のレイアウトを提示すべきだと思う。
743 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:50:21 ] 679です。どなたかよろしくお願いします…。
744 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:54:49 ] >>743 1 1文字ずつチェック ヒットしたらカウンタ++ 2 1行ずつチェック ヒットしたらカウンタ++
745 名前:デフォルトの名無しさん [2008/06/25(水) 23:55:13 ] >>742 すいません。 typedef struct{ int num;//出席番号 char class;//クラス char name[14];//名前 }meibo; 構造体はこんな感じです。 ファイルには最大10人分のデータがあります。 よろしくお願いします
746 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 23:57:04 ] >>739 っつか、暗号文すべてを復元したのを比較するよりも KOUKAを暗号化して、その暗号化されたものを含む場合で 判断した方が、暗号化する文字数を減らせないか?
747 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:13:32 ] >>744 ううう…どうにも思い浮かばないんだな。 だからここのスレに質問してるんだな。 プログラムお願いしますなんだな…。
748 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:15:23 ] >>679 アンカーつけておきますね kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7061.txt
749 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:17:27 ] [1] 授業単元:プログラミングU [2] 問題文(含コード&リンク) 問題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7071.txt サンプル:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7072.txt [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:VisualStudio2005 [3.3] 言語:C++ [4] 期限:2008年6月26日12:00まで [5] その他の制限 :問題の仕様、アルゴリズムに従うこと。 問題が長いですが、どうかよろしくお願いします。
750 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:20:08 ] [1]C [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7073.txt [3](1)LINUX (3)C [4]6月28日 [5]関数は使わず if for などの文だけでお願いします。 前回も投稿させてもらったのですが 桁数が3桁 4桁と増える場合にスペースを入れるという条件があるのを書き忘れてました どなたかお願いします。
751 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:25:53 ] >>679 No.1 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7074.c
752 名前:709 mailto:sage [2008/06/26(木) 00:29:55 ] >>734 >>740 普通に動きました♪ ありがとうございます。
753 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:53:29 ] >>679 No.2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7075.c
754 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 00:59:23 ] >>750 pc11.2ch.net/test/read.cgi/tech/1212895856/961 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6960.c
755 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:02:07 ] >>746 減らせますね。そのように作ってコードを載せてからいいましょうよ。
756 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:08:35 ] >>751 ,>>753 ありがとうございます! soremisitemo>>753 hanyuuryokunagai…。
757 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:09:23 ] >>755 > コードを載せてからいいましょうよ。 はぁ?コードを書いたわけでもないお前に言われたくねーよ お前こそ言うくらいなら書けよ
758 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:12:25 ] >>753 strcmp使わないでわざわざ効率悪い関数自作するのはなんで?
759 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:14:26 ] >>750 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7076.c >>756 名前の入力が面倒なら、入力する名前を1行ずつに表示している部分をコピーして 入力受付の場面で貼り付けてやれば、連続して改行ごとに区切って取り込んでくれるよ。 不要なら後は何も入力せず改行を連打。
760 名前:755 mailto:sage [2008/06/26(木) 01:14:54 ] >>757 俺コード書いたよ。>>731 がそれ。 文脈で分かると思ったんだけど、ごめんな。
761 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:16:44 ] >>758 = >>755 お前がコードを書けよw
762 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:19:02 ] >>758 > strcmp使わないで 使ったのをお前が書けば良いだろ、果たして うまく いくかな?w 口先だけってのはそういうことだ。
763 名前:731=755 mailto:sage [2008/06/26(木) 01:19:27 ] 本人じゃないとわめかれても困るのでソース削除しといた。
764 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:24:48 ] >>762 それがstrcmp使わないでnamecmpを使う理由だと思っていいのかな? strcmpじゃ比較がうまくいかないと。
765 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:31:08 ] 1人幼い子がますね
766 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:32:52 ] >>762 あ、もしかしたらstrncmpと勘違いしてるかも? strcmpは完全一致したときだけ0返すお。 namecmpが桁数チェックとかしてるのって strncmp("abc", "abcd", 3)が0返す挙動に対する考えに見える。 違ったらごめんね。 ただ、だからといってstrcmp使えよとは言わないけどなあ。 あくまでも宿題やってるうちは車輪の再発明万歳だと思うし、 俺が教授なら努力賞あげる。
767 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:33:23 ] >>761 = >>762 のことですね、わかります
768 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:34:46 ] >>759 ありがとうございます 申し訳ないんですが、 何故 printf("%*c ",w,0x20); の"%?"は1つしかないのに後ろに2つ値があるんですか? 普通は printf("%d",12);みたいな感じで1対1じゃないんでしょうか? ショボイ質問ですが分からないので教えて下さい。
769 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:35:23 ] strncmpって一致したのにfalseを返すのかって一時思ってたことがある
770 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:36:54 ] >>766 <string.h>使わないならともかく、使ってるんじゃ再発明もないと思うがなあ
771 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:38:35 ] >>768 www.geocities.jp/ky_webid/c/040.html 適当にぐぐっただけだけど最小フィールド幅の項を参照するといいよ。 キーワードは「出力変換仕様」。scanf系に使うのは「入力変換仕様」ね。
772 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:40:35 ] >>768 その%dの間にある * は、%3d といったように、最低の桁数を指定できる書式。 後ろの引数には * で桁数を指定するのに w を用いている 最初に n から桁数を求めて w に入れている この手法が駄目なら、wの分だけfor分を使ってスペースを入れるとか
773 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 01:58:30 ] >>772 そうだったんですかありがとうございます 問題の方なんですが 例えばn=10なら 2 3 4 5 6 7 8 9 10 11 12………98 999 1000 1001 と言うように 二桁の場合は2回スペース 3桁の場合は3回スペース 4桁の場合は4回スペース というようにしたいのですがその場合も教えて下さいませんでしょうか? 大変すいません…
774 名前:773 mailto:sage [2008/06/26(木) 01:59:39 ] >>773 間違えました 2桁なら3回スペース 3桁なら4回スペース 4桁なら5回スペース でした…
775 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:07:26 ] >>774 んじゃ、そのときの最大公約数の桁数を求めて、最小限必要な桁数 w との 差をとって繰り返して入れてみては?さぁ考えてみよー
776 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:11:10 ] それよりも本当にそのように表示したいのかが気になるところではある 各列幅がnの桁数 + 1になるようにしたいなら分かるんだけどね
777 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:14:50 ] またおまいか、憶測野郎。自分が思った疑問なら何でも投げかける 自分が思った通りじゃないからという理由だけで。相手が既に こうだと言っているにも関わらず、自分はそれに対して こうするね、という意見を出すから、お前人の話聞いてんのかっ!? はぁ?俺はそんなことを聞いてんじゃないよって言い返される。 孤立する人間のパターンそっくりだな。
778 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:18:41 ] このスレで孤立してるのはお前だけだからw
779 名前:773 mailto:sage [2008/06/26(木) 02:22:40 ] >>775 ますますわかりません…orz >>776 上に書いた例はスペースの個数が反映されなく全て1回のスペースで書かれてしまいましたが 言おうとしてることはまさにそうです
780 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:24:24 ] できたら問題文を一字一句正確に写したものをあげてくれない?
781 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:35:19 ] >>778 自己紹介乙、そういう言い返しをする時点でバレバレなんだよ
782 名前:デフォルトの名無しさん [2008/06/26(木) 02:36:16 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7077.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 来週まで [5] その他の制限: Which文は× おねがいします
783 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:38:05 ] >>750 [1]品質:未検証 [2]コード:直接記入 void main(void){ double n,i,j,a,b,tmp; do{printf("n=(n>=3)");fscanf("%d¥n",&n);}while((n<3)||(n>=1000)); fprintf("%3 s ",""); for(i=3;i<=n;i++)printf("%-3d",i+1); printf("¥n"); for(i=2;i<n;i++){ sprintf("%3d:",i); for(j=3;j<i+1;j++)printf("%3 s",""); for(j=i+1;j<=n;j++){ a=i;b=j; whlie(a!=0){tmp==b % a;b==a;a==tmp;} fprintf("%-3d",b); } printf("¥r"); } return 0; } [3] Windows Visual C++ 6.0 Cモードコンパイルを想定 [4]すんごく難しい課題でした。ユークリッドのアルゴリズムは 良くわかりません。参考にどーぞ
784 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 02:38:29 ] あくまでオプション的な事なのでできる人だけやれと講義の最後に口伝えで言われたので書くにも書けないんです…すいません 言ってたことは 各幅が nの桁数 + 1 です。