1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ] あなたが解けない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++の宿題を片付けます 102代目 pc11.2ch.net/test/read.cgi/tech/1197132472/
721 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 18:35:20 ] >>720 問題文の意図が明瞭でない。それだと答えようがない
722 名前: ◆LnG.2EAY0A mailto:sage [2008/01/28(月) 19:19:25 ] >>721 説明不足ですみませんでした。 問題文の元は、石取りゲームといって最初に全体の石の数・そこから一度に取れる数を設定しなければいけません、それが以下の部分です↓ printf("石を交互に取り、最後の1個を取った人が負けです\n"); while (1) { nOrder = 1; printf("石の数は(5以上100以下)=="); gets(answer); nStone = atoi(answer); if (nStone < 5 || nStone > 100) { printf("石の数が不正です\n"); continue; } while (1) { printf("一度に取れる石の数は(2以上)=="); gets(answer); nGet = atoi(answer); if (nGet >= nStone) { printf("一度に取れる石の数が多すぎます\n"); continue; } if (nGet < 2) { printf("一度に取れる石の数が少なすぎます\n"); continue; } break; } この部分で設定するのですが、最初の石の数・一度に取れる数を一度に設定できるようにしたいのです。例えば、 「一括設定を使いますか?→ y/n」→「難易度を選択して下さい→ 1:優しい 2:普通 3:難しい」 ここで1を入力すると、石の数と取れる数をファイルから読み込み、その設定でプレイする。といった感じです。 説明下手ですみません、追記させていただきました。
723 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:10:38 ] #include<stdio.h> #include<string.h> int main(void){ FILE *fp; char line[128], *p; int nStone, nGet, level, cnt; 〜省略〜 for(cnt=1; fgets(line, 128, fp) != NULL && cnt <= 3; cnt++){ if(level != cnt) continue; p=strchr(line, '\n'); if(p!=NULL) *p='\0'; sscanf(line, "%d %d", &nStone, &nGet); break; } 〜省略〜
724 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:08:06 ] [1]通信工学II [2]問題文(含コード&リンク): 次の文字送受信プログラム(IPv4専用)を、IPv4/v6デュアルスタックのプログラムに改良せよ。 クライアント:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5929.zip サーバー:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5930.zip [3]環境 [3.1] OS:Windows XP/Vista [3.2] コンパイラ名:Visual C++ 2005 SP1 [3.3] 言語:C++ [4]期限:1月31日 16:00 [5]その他の制限:特になし 丸投げですがよろしくお願いいたします。
725 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:15:27 ] なんかデカいのがきたな。
726 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:22:04 ] コメントそれなりについてるけど、このスレにしては確かにでかいな・・・ 変更が必要な箇所を明記してくれてるけど、専門外でさっぱりわかんねw
727 名前:デフォルトの名無しさん mailto:kokok [2008/01/28(月) 22:32:12 ] 素人でホントに困っています。よろしくお願いします 【質問テンプレ】 [1] 授業単元: 情報科学実習 [2] 問題文(含コード&リンク):() 問題> 次のような書式のファイルからデータを読み出して、標準体重の人の名前と 血液型一覧を別のファイルに出力せよ。ただし、classを用いること。また、 人のデータは必要によってメモリ割り当てすること *標準体重・・・まず。指数k=平均体重/(平均身長-100)を出す。 各人の理想体重は(身長-100)×kであり、標準体重は、理想体重の97〜103%。 ・データファイルの書式 一行目:人数 二行目以降:名前 血液型 身長 体重 ・データファイルの例 2 Mizumoto O 172 67 Otake A 170 62 [3] 環境 [3.1] OS: I Mac [3.2] コンパイラ名とバージョン: E macs [3.3] 言語:C++ [4] 期限: 2008年2月6日まで [5] その他の制限:繰り返し、条件式、配列、アドレス、ポインタ、スコープ、 クラスを習いました。
728 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 23:27:23 ] コンパイラ?
729 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:16:19 ] 【時間切れ】 (1/28) >581 >718 【未解決問題】 >>650 1/29 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>724 1/31 16:00 >>720 2/5 詳細>>722 >>727 2/6 >79 無期限 >144 無期限 問題文>148
730 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:33:26 ] >>727 この計算式通り計算すると理想体重が170付近になってしまいますが 理想体重でなくて理想身長の間違いではないでしょうか? 電卓で計算してみて下さい。
731 名前:730 mailto:sage [2008/01/29(火) 00:35:05 ] あ、ごめんなさい。私の間違いでした。
732 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 00:53:45 ] >>727 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5933.txt data2.datというファイルに結果を出力しています。
733 名前:デフォルトの名無しさん [2008/01/29(火) 01:33:25 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク) 入力された整数を配列に順次格納する(昇順になるように入力すること)。 0が入力された時に整数の入力を終了し、次に入力された数字を、二分探索によって 配列から探索し、その配列の添え字番号を出力するプログラムを作成せよ [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 1月29日正午まで お願いします
734 名前:702 mailto:sage [2008/01/29(火) 01:44:08 ] >>703-704 ありがとうございました
735 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:21:02 ] >>733 #include <stdio.h> #include <stdlib.h> #define BUFFSIZE 32 #define ARRAYSIZE 256 int binary_search(int array[], int b, int e, int key) { int t = (e - b) / 2 + b; if (array[t] == key) return t; if (array[t] < key) return binary_search(array, t, e, key); if (array[t] > key) return binary_search(array, b, t, key); } int main(void) { int array[ARRAYSIZE]; char buff[BUFFSIZE]; int i; puts("Input Number(s)."); for (i = 0; i < ARRAYSIZE; ++i) { fgets(buff, BUFFSIZE, stdin); if (atoi(buff) == 0) break; array[i] = atoi(buff); } printf("Input Number. :"); fgets(buff, BUFFSIZE, stdin); printf("index: %d\n", binary_search(array, 0, i, atoi(buff))); return 0; }
736 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:59:26 ] gccは不思議だな。 停止性がなくとも止まってくれるのは何故だろう? printfとかを入れると止まらんけど。
737 名前:デフォルトの名無しさん [2008/01/29(火) 06:45:43 ] [1] 授業単元:データ構造とアルゴリズム設計 [2] 問題文(含コード&リンク) 名前と年齢を入力し、年齢をキーとして、ハッシュ(チェイン法)に登録する '-'を入力すると登録を終了し、次に入力された年齢を、ハッシュ法で検索し あればその名前を出力するプログラムを作成せよ。ハッシュ表の大きさは9とする [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2月1日まで よろしくお願いします。
738 名前:デフォルトの名無しさん mailto:kokok [2008/01/29(火) 08:03:26 ] >>732 ありがとうございます!!助かりました
739 名前:733 [2008/01/29(火) 08:55:01 ] >>735 ありがとうございました!
740 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 10:54:03 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5934.txt [3] 環境 [3.1] OS: Windows Xp [3.2] コンパイラ名とバージョン: Microsoft Visual Studio .NET 2003 [3.3] 言語: C [4] 期限: 1/29まで コンパイルするとエラーが出るのですが どこが間違っているのかわからなくなってしまいました。 よろしくお願いします。
741 名前:740 mailto:sage [2008/01/29(火) 10:59:25 ] 連投すいません 問題つけるの忘れてました 申し訳ありません これです kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5935.txt
742 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:31:24 ] 「エラーメッセージはコピペしてください。」 って>>1 に書いてある コンパイルを通したいだけなら、問題文よりコンパイラのメッセージをコピペしてくれよ
743 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 11:59:24 ] 回答者たちよ、実務では解決できるのかすら分からない難題に埋もれる中、 回答が出るよう作られた宿題回答で回帰逃避したい気持ちはよく分かるぞ。
744 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:36:05 ] 娯楽ってのはそういうもんだ
745 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:37:29 ] >>743 先生、回帰逃避がよく判らないです。
746 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 12:53:27 ] >>737 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5936.cpp
747 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 13:26:55 ] 前に回答して頂いた>>581 です。 期限が切れてしまいましたが、二月頭まで締切を伸ばしてもらったので、引き続き(2)と(3)の解答をお願いできませんか?? どうかよろしくお願いします…m(_ _)m
748 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 14:01:25 ] >>747 音声データを縮める、音声データを反転させる、の定義をしてくれたまえ。
749 名前:デフォルトの名無しさん [2008/01/29(火) 14:28:52 ] 718の者です。期限1/28の17:00までって書いたんですけど これは間違いで1/30の17:00までなのでよろしくお願いしますm(__)m
750 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:22:53 ] >>749 #include <stdio.h> #define DATAFILE "sample.txt" #define LINES 10 int main(void) { FILE *fp; char line[10]; int i = 0, x[LINES], y[LINES], z[LINES]; if (fp = fopen(DATAFILE, "r")) { while (fgets(line, sizeof(line), fp)) { sscanf(line, "%d%d%d", &x[i], &y[i], &z[i]); i++; } fclose(fp); for (i = 0; i < LINES; i++) printf("x[%d] = %d, y[%d] = %d, z[%d] = %d\n", i, x[i], i, y[i], i, z[i]); } return 0; }
751 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:17:12 ] [1] 授業単元:C言語I [2] 問題文(含コード&リンク):(元データ:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5937.txt 入.力画.像ファイ.ル名、出.力画.像ファイル名、縦、横の 縮.小率を実行時に与えることが出来るようにすること 以下の場合、エラーメッセージを標準エラーに出力し て、プログラムを終了させること ・正しくない縮.小率が入力された場合 ・入力ファイル名に存在しないファイルが指定された場合 ・すでに存在するファイル名が出.力画.像ファイル名に指定さ れた場合 [3] 環境 [3.1] OS:Linux OpenSuse [3.2] コンパイラ名とバージョン: すみません確認が分かりませんでした。cc でコンパイルしています。 [3.3] 言語: C [4] 期限: [2008年01月31日17:00まで] [5] その他の制限: 簡単な例について,プログラミングの基礎知識,変数と式,制御の流れ,関数,配列,文字列,ポインタ,構造体とユーザ定義型,ファイルです。 基本的に初心者からの講座ですので使えることは多くありません。元プログラムを見ていただければ程度が分かると思います。 問題文で不自然に'.'が入っているのは,万が一検索されたときの対策です。 気を悪く思ったかもしれません。すみません。 もしスレを監視していたら意味もないですが;
752 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:22:20 ] 丸投げしといて見つかりたくないか。そうか。
753 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:25:30 ] 姿勢が気に食わないな。
754 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:44:19 ] 完全に駄目元で言ってるな。
755 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:48:30 ] 問題文のコメントも文字化けしてワロタ。
756 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:50:57 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):除算計算のプロセス改良 詳細→(ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5938.zip) [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:visual C++ [3.3] 言語: C++ [4] 期限:2/4 [5] その他の制限: 演算子/使用不可。 ヒントが詳しくあり、その通りにするだけだと思うのですができず。 問題と試しに作ったのを同梱したので添削してもらえると助かります。
757 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:15:24 ] >>756 fdivrsub()内の1行目、if()の条件式 (powb <= a << (powb+powb)) を if ( a < ( powb+powb )) にしたらいいんじゃない?
758 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:25:32 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ある海賊団(総員10名)が100枚の金貨を手に入れた。 そこでみんなで分けようとしたが、この海賊団には以下の分配ルールがある。 一番年長の海賊(ボス)が誰に何枚割り振るかを決める。 ボスも含めたみんながその割り振りに賛成か反対か投票をする。 半数以上の賛成で可決される。ただし、賛成が半数未満ならボスは処刑され、 新たなボスがまた分配方法を決める。(10人は年が違うので新ボスを誰にするかでもめることはない) と、決まるまでこれが繰り返される。 そしてこの海賊団員の特徴として、 みんな限りなく賢く、それぞれみんなが賢いことも知っている。 みんな自分の命は一番大事。次に大事なのは金貨。だが処刑は大好きで、 今のボスを処刑しても次のボスからもらえる金貨の枚数が同じだろうと思ったら、反対に票を投じる。 それぞれあまり仲はよくないので談合はしない。及び金貨の共有もしない。 さて、今のボスは自分がなるべくたくさん金貨がほしい場合、 何枚手に入れることができるだろうか? [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限:無期限 [5] その他の制限: なし
759 名前:758 mailto:sage [2008/01/29(火) 22:36:55 ] スレ違いなので取り下げます
760 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:59:20 ] [1]プログラミング入門 [2]問題文 座標(X_1 Y_1)にある自転車1が角度A_1(度)の方向にV_1(m/s)で進み、座標(X_2 Y_2)にある自転車2が角度A_2(度)の方向にV_2(m/s)で進んでいる。 二つの自転車が出会う点の座標(X_3 Y_3)と、経過時間Tを求めなさい。 X軸の正方向を0(度)とする。 座標1目盛り1(m)とする。 [3]環境 [3.1] OS:WindowsXP [3.2] Visual studio 2003 [3.3] 言語: C++ [4]期限:1月30日 [5]その他の制限特になし 丸投げで本当に申し訳ありません! 何卒宜しくお願い致します!(>_<)
761 名前:デフォルトの名無しさん [2008/01/29(火) 23:16:13 ] >>750 ありがとうございました!! ほんと助かりました。
762 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:46:06 ] >>760 向かい合って一直線に進んでるならまだしも、 ちょうどぶち当たるなんてこと、限りなく無いに等しいがそれでもいいの?
763 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:48:00 ] >>762 自転車の長さが100mくらいあるのかも知れないwww
764 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:05:32 ] 【時間切れ】 (1/29) >650 >740 【未解決問題】 >>760 1/30 pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31 >>724 1/31 16:00 >>751 1/31 17:00 >>581 2月頭 残:課題2、3 >>720 2/5 詳細>>722 >79 無期限 >144 無期限 問題文>148
765 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:08:06 ] まぁそのA1とA2が違う値ならぶつかるはずだけどなw
766 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:09:54 ] うはwと思ったらスピードが違うかったら一生交わらないww
767 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:13:37 ] >>765 点と点とが衝突するというのは、限りなく難しいと思う 自転車とやらの長さに依存する問題 長さが無限大の自転車だとほぼ確実に衝突するし、 長さが無限小の自転車だとほぼ確実に衝突しない
768 名前:760 mailto:sage [2008/01/30(水) 00:57:47 ] 申し訳ありません!直線の交点を求めて、それぞれがその交点にたどり着く時間T_1(秒)およびT_2(秒)を求める問題でした(>_<)
769 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:07:25 ] >>768 眠くてかなりやっつけだが、一応書いた。 交わらない位置関係の判定がいまいちかも分からん。 #include <iostream> #include <math.h> #define PI 3.1415926535897932384626433832795 #define RATE 1000 using namespace std; typedef struct DATA { double x, y, a, v, l; }; int main () { DATA a, b; cout << "X_1:"; cin >> a.x; cout << "Y_1:"; cin >> a.y; cout << "A_1:"; cin >> a.a; cout << "V_1:"; cin >> a.v; cout << "X_2:"; cin >> b.x; cout << "Y_2:"; cin >> b.y; cout << "A_2:"; cin >> b.a; cout << "V_1:"; cin >> b.v; a.l = (a.y - b.y) / tan((b.a - a.a) * PI / 180); b.l = (a.y - b.y) / sin((b.a - a.a) * PI / 180); if ((int)(a.a - b.a) % 180 == 0 || (int)(a.l*RATE) < 0 || (int)(b.l*RATE) < 0) { cout << "まじわらない"; return -1; } cout << "T_1 = "; if ((int)(a.l*RATE) == 0) cout << "0" << endl; else cout << a.l / a.v << endl; cout << "T_2 = "; if ((int)(b.l*RATE) == 0) cout << "0" << endl; else cout << b.l / b.v << endl; return 0; }
770 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:19:39 ] すまん、何か忘れてると思ったらx使ってなかったわwww × a.l = (a.y - b.y) / tan((b.a - a.a) * PI / 180); ○ a.l = (a.y - b.y) / tan((b.a - a.a) * PI / 180) + (b.x - a.x);
771 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 11:11:15 ] >>757 お礼が遅れて申し訳ありません ありがとうございました
772 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 12:28:43 ] >>720 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5940.cpp
773 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:45:26 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ファイル中に自然数が10列記されている。 この数列中には0が1〜9個含まれている。 従って、0を区切りと考えれば。この数列中には数が最低1つは連続している(連続回数とよぶ)。 連続回数の最大を求め,その時の和を求めよ。 ただし、連続回数の最大が2つ以上ある時は和の大きい方を最大とする。 また、連続回数も和も同じであるときは考慮しなくてもよい。 例1)3,1,0,3,6,2,3,7,4,0であれば、最大連続数は6でその和は25である。 例2)3,1,0,2,2,0,03,0,0であれば、最大連続数は2でその和は4である。 [3] 環境 [3.1] OS:Vine Linux 4.2 [3.2] コンパイラ名とバージョン:gcc3.4 [3.3] 言語:C [4] 期限:[無期限] [5] その他の制限:なし むりやりならばできましたが、スマートなやり方があれば教えていただきたいです。
774 名前:デフォルトの名無しさん [2008/01/30(水) 16:29:15 ] >>773 その無理やりのソースを貼り付けよう!
775 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:41:46 ] >>773 自分も無理やりやってみた。 #include <stdio.h> #define N 10 int continuous(int *a, int from, int n){ int to; for(to = from; to < n && a[to] != 0; to++); return to; } int culsum(int *a, int from, int to){ int i, sum = 0; for(i = from; i < to; i++) sum += a[i]; return sum; } int main(void){ FILE *fp = fopen("data.txt", "r"); int i, next, cnt = 1, sum = 0, tmp, a[N]; if(!fp) return 1; for(i = 0; i < N; i++) fscanf(fp, "%d,", &a[i]); fclose(fp); for(i = 0; i < N; i++){ next = continuous(a, i, N); if(next - i >= cnt){ cnt = next - i; tmp = culsum(a, i, next); if(tmp > sum) sum = tmp; } i = next; } printf("cnt: %d\nsum: %d\n", cnt, sum); return 0; }
776 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:45:28 ] 部分だけ。 a[10]に数値読み込んでこんな感じかな? int i,j=0,max=0,temp=0,renzoku=0; for(i=0;i<10;i++) { while(a[i]&&i<10) { temp+=a[i]; i++; j++; } renzoku=(j>renzoku?j:renzoku); if(renzoku==j)max=(temp>max?temp:max); j=0; }
777 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:47:38 ] なにをもってスマートなんだろう
778 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 16:49:18 ] tempも0に戻そうぜ
779 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:00:22 ] ごめwww手抜きするといいことないねwwwww #include <stdio.h> int main(void) { int a[10],i,j=0,max=0,temp=0,renzoku=0; FILE *fp=fopen("data.txt","r"); if(!fp) return 1; for(i=0;i<10;i++)fscanf(fp,"%d,",&a[i]); fclose(fp); for(i=0;i<10;i++) { while(a[i]&&i<10) { temp+=a[i]; i++; j++; } renzoku=(j>renzoku?j:renzoku); if(renzoku==j)max=(temp>max?temp:max); j=temp=0; } printf("最大連続数:%d\n合計:%d",renzoku,max); return 0; }
780 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:21:21 ] >>773 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5942.c
781 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:33:36 ] >>773 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5943.txt
782 名前:デフォルトの名無しさん [2008/01/30(水) 17:40:24 ] ・0〜99の100個の数字から異なる30個を選び、配列COM[30]に 格納せよ。 ・次に異なる6個の数字を入力し、順番に配列MAN[6]に格納せよ。 ・ソート方法Aを用いて配列COM、MANの要素をそれぞれ小さい順に並べよ。 ・配列COMに含まれる配列MANの数字の個数countを求めよ。 ・最後に、配列COM、MANの全要素、変数countを result.outに書き込め。 ・出力形式は自由とするが、main関数内は10行以内にすること。 [ソート方法A] ・作業用の配列として、要素が100個のint型の配列Workを用意する。 ・配列Workの各要素は、0に初期化する。 ・ソートしたい配列xの要素を順番に読んで、Work[その値]を+1する。 ・作業3をすべてのxの要素について行った後、Workの要素を小さい方から順番に よんで、Workの値が0でなければ、xに書き戻します。 この課題が全然できません。助けて下さい。
783 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:51:36 ] >>773 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5944.txt
784 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:53:32 ] >>782 それ、【ヒント1】〜【ヒント3】も問題文にあるだろ?
785 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:22:57 ] >>782 作ったけど,PC移行中でコンパイラ入れて無くて試せない^p^
786 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:10:32 ] >>769 本当に有難う御座います!!
787 名前:デフォルトの名無しさん [2008/01/30(水) 20:37:58 ] [1] 授業単元: [2] 問題文(含コード&リンク):シェルソートは単純挿入法を改良し、ソートの効率を上げたものである。 全ての要素を1度にソートするのではなく、 間隔dをあけて要素を比較して大まかなソートを繰り返したのち、 最後にd = 1でソートを実行する。 データ数をnとしたときの、効率の良い間隔d[i]の計算法として、 Knuthによる次の式が知られている。 t = log2n - 1 (整数に切り捨て) d[t-1] = 1 d[i-1] = 2d[i] + 1 この式を使って、与えられた要素数nに対し t、配列dの値を計算する関数を作成しなさい。 n = 100としたときの、tおよびdの要素の値を画面に出力しなさい。 logの計算を行うには、math.hをインクルードする [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:VS2005 [3.3] 言語: C [4] 期間:2/1まで [5] その他の制限: なし お願いします。
788 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:23:01 ] >>782 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5945.txt
789 名前:788 mailto:sage [2008/01/30(水) 21:25:57 ] ありゃ、main()関数が10行以下の制限忘れてた。 全部他の関数に移せってか。ちょっとまって。
790 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:26:06 ] >>782 >>694
791 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:35:02 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 直径1長さ1の円柱がある。体積をモンテカルロ法で計算せよ。 一辺が1の立方体を考え、3個の乱数で立方体内の点のxyz座標を発生させ,その点が物体の内部に落ちるかどうかを判定する。 内部に落ちる確率が体積に比例することから体積が見積もれる。 [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2/1 [5] その他の制限:
792 名前:788 mailto:sage [2008/01/30(水) 21:38:18 ] >>782 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5947.txt すまんかった。
793 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:43:34 ] >>782 の問題は、内容から おそらく COMとMANに値を収める 部分を、共通関数化すれば得点高いと思う。 それを構成できるかも問うてる様に見える。 具体的には、配列代入関数として、入れたかどうかと、 配列が溢れた事を戻り値で返す。
794 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:05:45 ] >>793 >>673
795 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:52:16 ] #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { double x, y, z; int iter[] = {10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 0}, i, j, k = 0, count; for (i = iter[k]; i; i = iter[++k]) { count = 0; for (j = 0; j < i; j++) { x = (double)rand() / RAND_MAX - 0.5; y = (double)rand() / RAND_MAX - 0.5; z = (double)rand() / RAND_MAX; if (sqrt(x * x + y * y) <= 0.5 && 0. <= z && z <= 1.) count++; } printf("ITER = %d, V = %f\n", iter[k], (double)count / iter[k]); } printf("Vの真の値 = %f\n", M_PI * 0.5 * 0.5); return 0; }
796 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:52:43 ] あ、>>795 は>>791 さんへです。
797 名前: ◆LnG.2EAY0A mailto:sage [2008/01/31(木) 02:04:32 ] >>772 >>723 お返事が送れて申し訳ありません、回答ありがとうございました! これでなんとか理解できそうです。
798 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:03:52 ] [1] プログラミング序論 [2] @./a.out arg1 arg2 ...の時、 argをアルファベット順にソーティングするquicksortのプログラムを作る。 A問題@をライブラリ関数qsort()を用いて作る。 qsort( void* base, int n_elem, int size, int (*compare)(void*, void*) ) base: 配列のアドレス n_elem: 要素数 size: 一要素のサイズ compare: 比較に使う関数。 Bライブラリ関数と同じ動きをする関数 msort( ...qsortと同じ引数... ) を作る。(アルゴリズムはクイックソート) [3] 環境 [3.1] Linux [3.2] gcc [3.3] C [4] 2008年2/5(火) [5] 制限は特にないです よろしくお願いしますm(__)m
799 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:57:21 ] >>798 とりあえず最後の問題だけやってみた。 これで満点とれなかったら教官の頭が悪い。 ( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5950.c
800 名前:ハム [2008/01/31(木) 18:54:12 ] 【質問テンプレ】 [1] 授業単元: プログラミング演習 [2] 問題文:(数独の問題作成の途中です。) 最初全てに0が入った2次元配列を、数字が全て埋まった状態にするプログラムを考えています。 どなたかお力をお貸し下さい。 [3] 環境 Visual Studio 2005 [3.1] OS: Windows/ XP [3.2] コンパイラ名とバージョン: わかりません [3.3] 言語: C言語 [4] 期限: ([2008年2月2日21:00まで] [5] その他の制限:初心者なので、簡単なコードでお願いします。
801 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:55:16 ] [1] プログラミング演習 [2]リンクリストを用いたスタックプログラムの作成 typdef struct box{ int cont; struct box next;}box1; typedef box1 *stack; スタックの仕様は↑とする。 ポップアップとプッシュダウンを行う関数 int pupup(stack S); void pushdown(stack S; int x); を作成せよ。 [3] 環境 [3.1] winXP [3.2] bcc [3.3] C [4] 2008年2/5(火) [5] 制限:問題文の仕様を使うこと。 アンダーフロー対策はしなくてよい よろしくおねがいします。
802 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:56:05 ] >>800 お前は日本語を書いている自信があるのか?
803 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:14:15 ] >>800 数独は、プログラムで解くのは簡単だけど作るのは難しいと思われ。 途中まで作ったのならそれを提示したまえ。 # つーか、初心者向けの内容じゃねぇぞ。
804 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:18:36 ] >>724 の者ですが、締め切りが2/2の12:00に伸びたのでどうかよろしくお願いします。 全然わからないので…
805 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:03:12 ] >>804 やだ。
806 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:08:17 ] >>805 お前に言ってねーよ。カス。 どうか分かる方お願いします。
807 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:09:57 ] >>806 やだってばー。
808 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:10:43 ] >>807 だからお前のような頭のヘボい奴には頼んでないから。 どうか頭の良い方お願いします。
809 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:15:17 ] >>808 馬鹿はスルーしろ
810 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:17:14 ] >>808 いちいち反応するな馬鹿
811 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:36:03 ] >>808 答えようかと思ったが、君のように裏表がある人間のために エディタ起動するのマンドクセ('A`)
812 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:37:32 ] >>811 お前に言ってねーよ。カス。 どうか分かる方お願いします
813 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:54:17 ] 誰もわかんねーのかよ。 単位やべーからお願い。
814 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:55:03 ] いさぎよく諦めろ
815 名前:名無し募集中。。。 mailto:sage [2008/01/31(木) 21:56:28 ] >>814 お前がやれ。命令だ。
816 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:00:14 ] 俺今他のやってる
817 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:41:07 ] >>801 問題がタコだな。 まず、その仕様じゃコンパイルすら通らない。 >pupup popupの間違いでは。 >アンダーフロー対策はしなくてよい オーバーフロー対策はどうなのよ。
818 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:43:33 ] 最近の人工無能は頭いいな
819 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:45:05 ] >>800 >数字が全て埋まった状態にするプログラム ほらよ memset(table, 1, sizeof(table));
820 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:57:33 ] >>817 オーバーフロウもアンダーフロウも対策しなくて大丈夫です。 ペーパーで提出する課題なのでかなり適当みたいです。 popupは自分も気になりましたが問題がpupupなのでそのままにしましたw
821 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:02:20 ] >>820 それだけじゃなくて、 typdef struct box{ int cont; struct box next;}box1; ↑じゃコンパイル通らないよ。 typdef struct box{ int cont; struct box *next;}box1; ↑こうしないと。 いいかげんそうな教官みたいだし、もう提出しなくてよいんじゃね?