1 名前:デフォルトの名無しさん [2009/06/24(水) 23:28:21 BE:454421568-DIA(282072)] あなたが解けない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++の宿題片付けます 127代目 pc12.2ch.net/test/read.cgi/tech/1244449887/
964 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:59:52 ] [1] 授業単元: プログラミング演習2 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9736.zip [3] 環境 [3.1] OS: Linux CentOS5 [3.2] コンパイラ名とバージョン: gcc 3.4.1 [3.3] 言語: C [4] 期限: 2009年07月14日10:00 [5] その他の制限: じpに入っているk1.cを書き換えて完成させろという課題です。 よろしくお願いいたします。
965 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:00:02 ] >>960 #include <stdio.h> int main(void) { double ave = 0; int a[5]; int i; for (i = 0; i < 5; i++) { printf("%d番: ", i + 1); scanf("%d", &a[i]); } for (i = 0; i < 5; i++) ave += a[i]; printf("平均身長: %.1f\n", ave / 5); return 0; }
966 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:12:45 ] >>964 最初から自分で書くなら兎も角、他人の書いた途中なソースに加筆して完成させるというのは それ以上の高度なスキルが必要でこのスレでそれが出来そうなのは麻呂(ry
967 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:21:10 ] 分子=1 分母=1063 1/1063=(0.000940733772342) 0. [ 0009407337723424270931326434619002822201317027281279397930385700846660( 70) 3951081843838193791157102539981185324553151458137347130761994355597365( 140) 9454374412041392285983066792097836312323612417685794920037629350893697( 210) 0837253057384760112888052681091251175917215428033866415804327375352775( 280) 1646284101599247412982126058325493885230479774223894637817497648165569( 350) 1439322671683913452492944496707431796801505174035747883349012229539040( 420) 4515522107243650047036688617121354656632173095014111006585136406396989( 490) 6519285042333019755409219190968955785512699905926622765757290686735653( 560) 8099717779868297271872060206961429915333960489181561618062088428974600( 630) 1881467544684854186265286923800564440263405456255879586077140169332079( 700) 0216368767638758231420507996237064910630291627469426152398871119473189( 770) 0874882408278457196613358419567262464722483537158984007525870178739416( 840) 7450611476952022577610536218250235183443085606773283160865475070555032( 910) 9256820319849482596425211665098777046095954844778927563499529633113828( 980) 7864534336782690498588899341486359360301034807149576669802445907808090( 1050) 310442144873]( 1062)
968 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:30:59 ] 下手の横好きってやつなんだけど、>>954 のプログラムについて聞きたい getc関数は一文字しか返さないから、その文字がたまたま一緒だった場合、 別の内容だったとしても同じだと判断してしまう危険性とかはないんだろうか? バイナリファイル自体がよく解ってない初心者なので、 誰かちょっと解説してもらえると助かる
969 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 03:04:25 ] >>968 その通り、getc,fgetcは使用すべきではないし、 ロジックもあなたの言う通り間違ってる。 コードを加筆修正して正しいコードを書いてみそ とでも>>954 は言いたげな漢字
970 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:13:09 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9737.zip [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン:Visual Studio 2005 [3.3] 言語:C [4] 期限:7/16/ [5] その他の制限: 問題文の通りにやっていただければ結構です。 宜しくお願いします。
971 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:51:03 ] >>970 /* */ len = (int)str_length(st); for(i=0;i<len/2;i++) { temp = *(st+i); *(st+i) = *(st+len-i-1); *(st+len-i-1) = temp; } /* */ rev_str(str);
972 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:03:57 ] >>949 #include <stdio.h> #define LEN 8192 int findrepeat(int r[], int *head, int *tail) { int i, j; for (i = 0; r[i]; ++i) for (j = i + 1; r[j]; ++j) if (r[i] == r[j]) { *head = i; *tail = j; return 1; } return 0; } int main(void) { int q[LEN], r[LEN]; int n, head, tail, i; printf("n? "); scanf("%d", &n); if (n == 1) { printf("1 / 1 = 1"); return 0; } for (i = 0; i < LEN; ++i) q[i] = r[i] = 0; head = tail = -1; q[0] = 1 / n; r[0] = 1 % n; for (i = 1; i < LEN && r[i - 1] != 0; ++i) { q[i] = 10 * r[i - 1] / n; r[i] = 10 * r[i - 1] % n; if (findrepeat(r, &head, &tail)) break; } printf("1 / %d = %d.", n, q[0]); for (i = 1; q[i] || r[i]; ++i) { if (i - 1 == head) printf("("); printf("%d", q[i]); if (i == tail) printf(")"); } return 0; }
973 名前:デフォルトの名無しさん [2009/07/13(月) 06:42:36 ] おはようございます>>678 です。 結局>>686 をCに変換できませんでした… どなたか、Cに書き換えてはいただけないでしょうか。
974 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:47:12 ] 最初からCって書いて置けよ C++もはいってるじゃねーか
975 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:50:32 ] >>973 どうみてもC++じゃなくてCで書かれてるんだが
976 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:53:10 ] >>975 拡張子がtxtのままとかどうせレベルの低い話なんだろうけどなw
977 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:54:32 ] >>976 それプラス ・課題(11_1)はmain_11_1をmainに書き換えてコンパイル ・課題(11_2)はmain_11_2をmainに(ry ってのがわかってないんだと思う
978 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:56:50 ] ああ、あまりにもあほらしくて中みてなかったが課題をまとめてくれてるのかw ほんとにて取り足取りでないとできないのかw
979 名前:デフォルトの名無しさん [2009/07/13(月) 07:36:42 ] これはいいツンデレ
980 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 07:47:26 BE:511223696-DIA(287979)] 次スレ立てました C/C++の宿題片付けます 129代目 pc12.2ch.net/test/read.cgi/tech/1247438792/
981 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:28:03 ] >>968 getcでもファイルの最後まで比較しながら読み込んでいけばいいんだけどね。 あなたの言うとおり、>>954 は最初の1文字でしか判定してないから思いっきり間違ってる。 本人はwhile使ってるあたり、最後まで比較したつもりなんだろうけど。
982 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:50:46 ] >>954 をいじるとこうなるのかな do { char c1, c2; c1 = getc(fp1); c2 = getc(fp2); if (c1 != c2) { puts("異なります"); return 2; } } while (c1 != EOF); puts("同じです"); return 0;
983 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:51:41 ] char じゃなくて int じゃないとまずいか
984 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 09:01:24 ] 初心者のころcharで受けて、ファイルの途中で読み込み終了して困ったことがあったなぁ。
985 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:00:54 ] >>966 そこで麻呂はない
986 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:29:46 ] >>975 >>736
987 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:45:07 ] >>986 「どうみても」といいつつちゃんと見てなかったw こいつは失礼した
988 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 12:48:55 ] [1] 授業単元:アルゴリズム論演習 [2] 問題文(含コード&リンク): (1)3つ以上の整数の階層的プログラミングを行うプログラムを 作成せよ。ただし、整数間の距離は差、クラスタ間の距離はそ れぞれの要素間の距離のうち最小のものとする。出力は、クラ スタか、あるいは整数a,bを足して得られるクラスタをa,bとし、 これを帰納的に適用する表現で表せ。たとえば、1,2,5に対す る出力は((1,2),5)である。 (2)3つ以上の2次元ベクトルの階層的プログラミングを行うプ ログラムを作成せよ。ただし、ベクトル(u1,u2)と(v1,v2)の間 の距離をsqrt(u1*v1 + u2*v2)とし、クラスタ間の距離はそれ ぞれの要素間の距離の平均とする。出力は(1)の表現を用いよ。 [3] 環境 [3.1] OS:Windows [3.2] VisualStudio2008EE [3.3] 言語:C/C++のどちらでも可 (できれば後学のためC++でお願いします。) [4] 期限: [2009年07月23日まで] [5] その他の制限:特に制限はありません。
989 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 12:50:09 ] >988 よろしくお願いいたします><;
990 名前: ◆/91kCCQXBo mailto:sage [2009/07/13(月) 13:00:51 ] >>982 お世話になった。 >>953 の時は作業中だったのに無理してしまった。 >>955 line 12 : while(getc(fp1) != getc(fp2)) { ↓ int c1=0,c2; /* do if((c1 = getc(fp1)) != (c2 = getc(fp2))) { puts("異なります"); fclose(fp2); fclose(fp1); return 2; } while (c1 != EOF); */ while (c1 != EOF) if((c1 = getc(fp1)) != (c2 = getc(fp2))) {
991 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 13:17:08 ] >>678 g++ でコンパイルしてみること。 エラーが出たらエラーメッセージを貼り付けること。
992 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 14:14:37 ] >988 (誤)階層的プログラミング (正)階層的クラスタリング でした^^; よろしくです。
993 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 14:35:11 ] >>971 ありがとうございます。
994 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 15:20:18 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9738.txt [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: VC 2009 [3.3] 言語: C言語 [4] 期限: 7/14 15時 [5] その他の制限: define,for文など よろしくお願いします
995 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 15:27:54 ] >>994 連立1次方程式の解をガウスの消去法用いて解く 問題>>162 解答>>174 (9580)>>183 (9582)
996 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 16:18:31 ] たとえば 3481 という数字(4桁/0含む)が与えられたとき 0 = 3 + 4 - 8 + 1 1 = 3 + 4 - 8 * -1 2 = -(3 + 4 - 8 - 1) 3 = 3 * 4 - 8 - 1 4 = (3 / (4 + 8))^-1 ... のように加減乗除のみで整数を順に造っていってください
997 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 16:24:11 ] 最後の例で思いっきり加減乗除を使っていない件
998 名前:794 mailto:sage [2009/07/13(月) 19:34:47 ] ここ2日ほど熱があり寝込んでました 先生に相談すると今週の間だけ待ってくれるとのこと まだ未解決なので再度宜しくお願いします
999 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 19:47:01 ] >>998 なんかのギャグですか?
1000 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 20:39:34 ] ume
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。