ぼるじょあがC/C++の宿題を片づけますYO! 48代目
レス数が1000を超えています。これ以上書き込みはできません。
0001ぼるじょあ ◆yBEncckFOU
2005/07/16(土) 08:50:45わからない宿題を片づけますYO!
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:Windows/Linux/等々
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで または 無期限 のいずれか
[5] その他の制限:どこまで習っているか、等々
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【前スレ】
ぼるじょあがC/C++の宿題を片づけますYO! 47代目
http://pc8.2ch.net/test/read.cgi/tech/1120522752/
【歴代スレは>>2-13】
0002デフォルトの名無しさん
2005/07/16(土) 08:54:0245代目: http://pc8.2ch.net/test/read.cgi/tech/1118165596/
0003デフォルトの名無しさん
2005/07/16(土) 08:54:5043代目: http://pc8.2ch.net/test/read.cgi/tech/1115794784/
42代目: http://pc8.2ch.net/test/read.cgi/tech/1113811213/
41代目: http://pc8.2ch.net/test/read.cgi/tech/1109542053/
40代目: http://pc5.2ch.net/test/read.cgi/tech/1107625122/
39代目: http://pc5.2ch.net/test/read.cgi/tech/1106650397/
38代目: http://pc5.2ch.net/test/read.cgi/tech/1105541524/
37代目: http://pc5.2ch.net/test/read.cgi/tech/1103913840/
36代目: http://pc5.2ch.net/test/read.cgi/tech/1102753497/
35代目: http://pc5.2ch.net/test/read.cgi/tech/1101568895/
34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
00044様
2005/07/16(土) 08:55:1228代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
0005デフォルトの名無しさん
2005/07/16(土) 08:55:4313代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
09代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
08代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
07代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
06代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
05代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
04代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
03代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
02代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
01代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0006デフォルトの名無しさん
2005/07/16(土) 11:18:170007デフォルトの名無しさん
2005/07/16(土) 13:19:59おちゅ
0008デフォルトの名無しさん
2005/07/16(土) 15:45:00乙
0009デフォルトの名無しさん
2005/07/16(土) 21:02:14>>6
0010デフォルトの名無しさん
2005/07/16(土) 23:37:570011デフォルトの名無しさん
2005/07/16(土) 23:43:05迷惑極まりない
0012デフォルトの名無しさん
2005/07/17(日) 02:36:220013デフォルトの名無しさん
2005/07/17(日) 03:27:24[2] 問題文(含コード&リンク):
コンパイラまたはインタプリタを設計/実装せよ。以下の機能をつけること。
変数、式、配列、関数定義/呼び出し、組み込み関数、制御構造
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): MinGW
[3.3] 言語:C
[4] 期限:9月1日まで
[5] その他の制限:文法はひととおり
0014やめられない名無しさん
2005/07/17(日) 03:40:12馬鹿ですかあなたは。お金取りますよ。そんな大仕事。
0015デフォルトの名無しさん
2005/07/17(日) 03:46:250016やめられない名無しさん
2005/07/17(日) 03:48:09そう思うならお前が作ってやれよ。
0017デフォルトの名無しさん
2005/07/17(日) 04:02:59http://pc8.2ch.net/test/read.cgi/tech/1115335709/
まずは一通り目を通せ
0018デフォルトの名無しさん
2005/07/17(日) 05:30:14Lispインタプリタなら結構簡単に作れると思うぞ。
ググってみそ。
0019デフォルトの名無しさん
2005/07/17(日) 11:00:11どうしようもない気が
0020デフォルトの名無しさん
2005/07/17(日) 13:19:43[1] 授業単元:C言語応用(最終課題レポ)
[2] 問題文:
【A】(1) 正の整数の入力を受け付け、二分探索木を作成するプログラムを作成する。
0以下の数値の入力により、終了とする。入力済の数値が入力された場合は追加しなくてよい。
(2) 次に探索対象の数値を受け付け、(1) で作成した木を参照して二分探索を行うプログラムを作成する。
探索終了後、探索した数値を出力する。
【B】指定された個数の乱数(ランダムな値)を発生させ、
基本選択法によるソートとクイックソートの両方を実行するプログラムを作成せよ。
また、それぞれの実行に要する時間を計測して表示せよ。
個数を 1000, 10000 などと増加させ、所要時間を確認せよ。
ただし、ソート結果自体は非常に長くなるため、表示しなくて良い
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5.1
[3.3] 言語:c/c++のどちらでも
[4] 期限:2005年7月19日18時まで
[5] その他の制限:二つですけど、よろしくお願いします
0021デフォルトの名無しさん
2005/07/17(日) 13:53:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/741.txt
とりあえずAやってみた。Bは誰かよろ
0022デフォルトの名無しさん
2005/07/17(日) 14:07:37[2] 問題文(含コード&リンク):
適当な画像を読み込み、出力結果を出せ。
1.モザイク処理をした画像を出力せよ
2.色の反転(ネガ)の処理をした画像を出力せよ
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:来週の火曜
[5] その他の制限:2つですがどうかよろしくお願いします。
0023デフォルトの名無しさん
2005/07/17(日) 14:16:400024デフォルトの名無しさん
2005/07/17(日) 14:19:14書き忘れてすいません。
0025デフォルトの名無しさん
2005/07/17(日) 14:33:580026デフォルトの名無しさん
2005/07/17(日) 16:10:15条件として分ける方法(リストの先頭とか最後に代入するとか、途中で代入
するとか)がいまいちうまくいかないんですけど、誰か教えてください。
0027デフォルトの名無しさん
2005/07/17(日) 19:20:44[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
最良優先探索と山登り法のプログラムを作り、実行して以下の迷路の探索経路を求めよ。
7−8−−-G
| |
3−4−5−6
| |
S−−-1−2
(数字は節点の番号)
山登り法のプログラムから作成して、まだ作りかけなのですが、
コンパイルは通るものの強制終了になってしまいます。↓
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/742.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年7月19日まで
[5] その他の制限:ありません
0028デフォルトの名無しさん
2005/07/17(日) 19:33:33挿入するときに新しい node の確保してるか?
segmentation error 出てるんなら大方してないと思われ。
0029デフォルトの名無しさん
2005/07/17(日) 21:13:20[2] 問題文(含コード&リンク):
セマフォを使った同期
詳しくは下のリンクに書いてあります。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/743.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/19まで
おねがいします。
0030デフォルトの名無しさん
2005/07/17(日) 21:50:17誤読しやすいように思います。
経験的な値を保持するのに「〜〜_f」という名前、ちょっと(^^;;
Input_nodeっていうのも・・・値をセットするのが目的なのですから、set〜〜って名前のほーが。。。
やたら+'0'が目立ちますが、それは出力時だけで十分です。他の場所でつかうとこはありません。
ところで、strlenしてますが、終端のことは考えていないように見えます。(大域変数の初期値が0なのでOKかと思いますが)
goalフラグは使わないでpoint == GOALだけで判断できると思います。
山登り法(最も評価の高い経路に行くだけ)のアルゴリズムでは探索がループすることがあります。ループを検出していますか?
以上を直してみて、まだ動かないようでしたら、またいらしてください。
0031デフォルトの名無しさん
2005/07/17(日) 21:50:57出直すのは俺だった。
0032デフォルトの名無しさん
2005/07/17(日) 22:22:02freeってなんだよ。配列だろ?
0033デフォルトの名無しさん
2005/07/17(日) 22:25:40tech:プログラム技術[スレッド削除]
http://qb5.2ch.net/test/read.cgi/saku/1098189517/96
> 削除理由・詳細・その他:
> スレタイにコテハン名
0034デフォルトの名無しさん
2005/07/17(日) 23:25:42http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/744.txt
殴り書きソースです。ものすごい汚いけどがまんして。
ちなみにppmはp3だけ読み込める。ほか対応すんのはめんどくさい。
p6っていうかrawファイルはpnmnorawでもしてくれ。
コマンド引数はファイル名でよろ
0036デフォルトの名無しさん
2005/07/17(日) 23:32:19ハァ?
プログラム作る事自体が勉強なんだろ?
ライブラリ使っていいならこんな所で聞きゃあしねーよ
0037デフォルトの名無しさん
2005/07/18(月) 02:49:38俺も、一般的な話で読み込みようのライブラリがあるのか知りたいデス。
ついでにage
0038デフォルトの名無しさん
2005/07/18(月) 04:18:00クラスとヘッダーがあって、B.hの中で宣言したStructとEnum typeを利用した
オブジェクトを A.h中で宣言しようとすると コンパイルできません。
A.cpp中では B.hをIncludeしているので 問題なく使えます。
Enum type{x,y,z}
Struct s{int i; type t;}
のようにB.hで宣言し、 A.h内で
Private;
void functionA(vector<s> input};
のように書くと、sは宣言されていませんというエラーがでてしまいます。どうしてでしょうか?
0039デフォルトの名無しさん
2005/07/18(月) 04:36:15B.h内でもA.hをincludeするか、A.cppでincludeする順序を変える(B.hを先にする)。
gcc -Eでどう展開されるのかが見てみれ。
0040デフォルトの名無しさん
2005/07/18(月) 10:49:44腐るほどある。
自分で書いても高が知れている。
一々上げんな。
0041デフォルトの名無しさん
2005/07/18(月) 10:59:40それをループさせ、名称のところにexitと入力されたらループ終了という
プログラムを作りたいのですが、どうやってexitと入力されたらループを抜けるのかが分かりません。
どなたかご教授お願いします。。
ちなみに作ってみたプログラムを参考までに載せておきます。
while(1){
printf("器具名を入力してください(exitで終了)->");
scanf("%s",data[0]);
if(data[0] == "exit")
return 0;
else
printf("製造会社を入力してください->");
scanf("%s",data[1]);
printf("型番を入力してください)->");
scanf("%s",data[2]);
printf("製造番号を入力してください->");
scanf("%s",data[3]);
printf("\n");
}
0042デフォルトの名無しさん
2005/07/18(月) 11:02:40use strcmp()
0043デフォルトの名無しさん
2005/07/18(月) 11:02:56わかりやすくするとだ、こんな感じなんだよ
scanf("%s",data);
if(data[0] == "e" && data[1]=='x' && data[1]=='i' && data[1]=='t') break;
0044デフォルトの名無しさん
2005/07/18(月) 11:03:21scanf("%s",data);
if(data[0] == "e" && data[1]=='x' && data[2]=='i' && data[3]=='t') break;
0045デフォルトの名無しさん
2005/07/18(月) 11:16:36を忘れてますよ。
0046デフォルトの名無しさん
2005/07/18(月) 11:37:00別解
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/745.txt
41が間違っているのは44と45の指摘
0047デフォルトの名無しさん
2005/07/18(月) 11:44:27わざわざアップローダまで使ってのネタ乙。
0048デフォルトの名無しさん
2005/07/18(月) 12:03:37(°Д°)ハァ?
0049デフォルトの名無しさん
2005/07/18(月) 12:04:52コンパイルも通らないようなもん貼ってもねぇ。
つーか、他人のメール欄コピーせんでもいいだろ(苦笑
0050デフォルトの名無しさん
2005/07/18(月) 12:41:10試してみたがC89準拠の設定でgcc通ったぞ
0051デフォルトの名無しさん
2005/07/18(月) 12:41:56コメントがC++スタイルになってたからそこだけは修正したが
どっちにしろgccノンオプションなら通る
0053デフォルトの名無しさん
2005/07/18(月) 14:31:420054デフォルトの名無しさん
2005/07/18(月) 16:32:29俺が前スレあたりに揚げた表計算でどうだ?
「制御構造」ってのが少し怪しいが、それ以外は用件を満たしてると思う。
ろだの解答すれにzipがあるはず。
0055デフォルトの名無しさん
2005/07/18(月) 19:58:35[1] 授業単元:C言語課題
[2] 問題文(含コード&リンク): キーボードから入力された10個までの数の組をソートして表示すること
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5.1
[3.3] 言語:C
実行ユーザーによる、標準入力(キーボード)からの入力を行うこと
ユーザからの入力を受け付ける際には必ずfgets関数を用いること
入力された数は配列に保持すること
文字列を個々の数字へと分割するために、strtok関数を使用すること
何も入力されなかった場合は「ソートしたい数の組を入力してください」と表示し、終了すること
数字以外が入力された場合は「ソートしたい数の組を入力してください」と表示し、終了すること
11個以上の数字が入力された場合、「数が多すぎます」と表示し、終了すること
ソート部分は多分出来たと思うんですが、入力部分がうまくできません
一応ソース張っておくのでよろしくお願いします
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/746.txt
0056デフォルトの名無しさん
2005/07/18(月) 20:19:50(1) ユーザからの正の整数の入力を受け付け、二分探索木を作成するプログラムを作成せよ。
0以下の数値の入力により、終了とする。すでに入力された数値と同じ数値が入力された場合は
追加しなくてよい。
(2) ユーザから探索対象の数値を受け付け、(1) で作成した木を参照して二分探索を行う
プログラムを作成せよ。探索終了後、探索した数値を出力せよ。
005756続き
2005/07/18(月) 20:20:23二分探索木に追加するデータを入力して下さい: 12
二分探索木に追加するデータを入力して下さい: 6
二分探索木に追加するデータを入力して下さい: 26
二分探索木に追加するデータを入力して下さい: 9
二分探索木に追加するデータを入力して下さい: 20
二分探索木に追加するデータを入力して下さい: 14
二分探索木に追加するデータを入力して下さい: 3
二分探索木に追加するデータを入力して下さい: -1
探索したい数値を入力して下さい: 9
12 -> 6 -> 9
探索したい数値を入力して下さい: 14
12 -> 26 -> 20 -> 14
探索したい数値を入力して下さい: 5
12 -> 6 -> 3
存在しません
0058デフォルトの名無しさん
2005/07/18(月) 20:57:09御願いします。
0059デフォルトの名無しさん
2005/07/18(月) 21:05:06[2]キーボードから3つの整数を読み込み、最大公約数と最小公倍数を表示。ただし、
2つの整数を因数とし最大公約数を返す関数をユーザ定義関数として作成し
この関数を使用すること。
[3]
[3.1]Windows
[3.2]Microsoft visual c++ 6.0
[3.3]C++
[4]7/20
[5]if forなど基本的な物を使ってほしい。
誰かよろしくお願いします。
0060デフォルトの名無しさん
2005/07/18(月) 21:05:36[1] 授業単元:C言語課題
[2] 問題文(含コード&リンク):整数は約数(1は含むが、その整数自身は含まない)の和がその整数に等しいとき、完全数と呼ばれる。
引数numberが完全数であるかどうかを判定する関数int IsPerfect(int number)と約数判定関数int IsDivisor(int dividend, int divisor)を作成しなさい。
次にこれらの関数を使って、2 から 10000 までの間にあるすべての完全数をプリントアウトするプログラムを作成しなさい。
[1] 授業単元:C言語課題
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ(バージョン)gcc
[3.3] 言語:C
4、main関数を、前に、もってきてください。下のほうに、
約数関数と、完全数を見つける、関数を持ってきてください。
よろしくお願いします。
0061デフォルトの名無しさん
2005/07/18(月) 21:07:13ちょっと前にここに出てたから作った二分探索の奴を手直ししただけだが・・・
まぁ参考程度にでもしてくれ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/748.txt
0062デフォルトの名無しさん
2005/07/18(月) 21:12:42[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/720.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:7月20日
[5] その他の制限:特になし
お願いします。
0063デフォルトの名無しさん
2005/07/18(月) 21:17:470064デフォルトの名無しさん
2005/07/18(月) 21:20:37むしろ半分ぐらいそれの様な希ガス
それも実際のプログラミングの場では生かせないような奴な
0065デフォルトの名無しさん
2005/07/18(月) 21:26:340066デフォルトの名無しさん
2005/07/18(月) 21:33:06全く文や例が同じ問題やってるんだけど・・・。
同じ授業受けてる誰かなんだろうなぁ〜
0067デフォルトの名無しさん
2005/07/18(月) 21:35:11http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/749.txt
0068デフォルトの名無しさん
2005/07/18(月) 21:42:23ソートはできているという話なのでそのまま使ったよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/750.txt
問題ないと思われ。
0069デフォルトの名無しさん
2005/07/18(月) 21:43:35全スレで回答者がいたのでそのままうp
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/751.txt
0070デフォルトの名無しさん
2005/07/18(月) 22:08:19見させてもらいやす!!
でわからんかったらまた質問させて下さい。>>67
0071デフォルトの名無しさん
2005/07/18(月) 22:16:15ほれ。
#include <stdio.h>
#include <stdlib.h>
int IsDivisor(int dividend, int divisor) {
return dividend % divisor ? 0 : 1;
}
int IsPerfect(int number) {
int i, sum = 1;
for (i = 2; i <= number / 2; i++) {
if (IsDivisor(number, i)) { sum += i; }
}
return number == sum;
}
int main(int argc, char **argv) {
int i;
for (i = 2; i <= 10000; i++) {
if (IsPerfect(i)) {
printf("%d\n", i);
}
}
return 0;
}
0072デフォルトの名無しさん
2005/07/18(月) 22:16:59コンパイルしたけど11個の時だけ動作おかしい
どこ直せばいいのだろうか?
0073デフォルトの名無しさん
2005/07/18(月) 22:24:33return (a?function1(b%a,a):b);
ってどういう意味ですか?>>67
0074デフォルトの名無しさん
2005/07/18(月) 22:30:42すまん。解決した
�d
0076デフォルトの名無しさん
2005/07/18(月) 22:34:11三項演算子で(ry
0078デフォルトの名無しさん
2005/07/18(月) 22:43:33真偽で返す値とか代入値を変えるような場合には便利だから覚えとくと吉
0079デフォルトの名無しさん
2005/07/18(月) 22:46:12ありがとうございます!
0080デフォルトの名無しさん
2005/07/18(月) 22:47:05親切にありがとう!!>>77
0081デフォルトの名無しさん
2005/07/18(月) 22:50:31↑
これわかる人いましたらおねがいします。。。
0082デフォルトの名無しさん
2005/07/18(月) 22:57:07[2] 問題文 入力された半角英数字を逆順で表示しなさい。
※英小文字はあっぱーを使用し、英大文字として出力すること。
例・・・2tyan7neru
↓
UREN7NAYT2 こんな感じです。
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ(バージョン)gcc
[3.3] 言語:C
[4]期限 明日の午前1時まででお願いします。
0083デフォルトの名無しさん
2005/07/18(月) 22:58:01クイックソートによる整列を行うプログラムを作成せよ。
入力は100000個まで受け付けるものとする。
関数 partition の内部, ソート対象データの格納, 画面へのソート結果出力部分を完成させよ。
008482です
2005/07/18(月) 23:00:430085デフォルトの名無しさん
2005/07/18(月) 23:05:10入力する文字数に制限は無いのか?
0086デフォルトの名無しさん
2005/07/18(月) 23:06:11こんなん?
#include <stdio.h>
#include <string.h>
int main(){
char buf[128];
int i;
scanf("%s", buf);
for(i = strlen(buf); i >= 0; i--)
printf("%c", toupper(buf[i]));
printf("\n");
}
0087デフォルトの名無しさん
2005/07/18(月) 23:09:56008882です
2005/07/18(月) 23:11:510089デフォルトの名無しさん
2005/07/18(月) 23:18:59#include <stdio.h>
#include <string.h>
#include <ctype.h>
void swap(char* lhs, char* rhs)
{ char oldLHS = *lhs; *lhs = *rhs; *rhs = oldLHS; }
void reverse_ranges(char* first, char* last)
{
for (; first < last; ++first) {
swap(first, --last);
}
}
void reverse(char* input)
{ reverse_ranges(input, input + strlen(input)); }
void to_upper(char* input)
{
for (; *input; ++input) {
if (islower((unsigned char)*input)) {
*input = (char)toupper((unsigned char)*input);
}
}
}
int main(void)
{
char str[16];
scanf("%s", str);
reverse(str);
to_upper(str);
printf("%s", str);
return 0;
}
見にくいな…
0090デフォルトの名無しさん
2005/07/19(火) 00:01:10009182です
2005/07/19(火) 00:49:17ロジックの最後にreturn 0;とすると、エラーが出るのですがどうしてでしょうか?
対処法を教えてください。
0092デフォルトの名無しさん
2005/07/19(火) 00:52:11#define N 20
#include <stdlib.h>
int num(const void *a, const void *b)
{return *((int *)a) - *((int *)b); }
void main()
{int i, a[N];
for(i=0; i<N; i++)
{printf("何かデータを入力してください:");
scanf("%d",&a[i]);
if(a[i]<=0)
{break; }
}
qsort(a, N, sizeof(int), num);
printf("\n結果\n");
for(i=0; i<N; i++)
{printf(" %d,",a[i]);}
}
↑で、負の数を入力すると入力を中止し、
今までの入力された正の数を出力したいんですけどできません。
どこを直せば(追加すれば)いいですか?
0093デフォルトの名無しさん
2005/07/19(火) 01:23:27エラーの詳細ぐらいかけ
多分#include <ctype.h>が抜けてるだけジャマイカ??
>>92
その問題の参考ソース
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/739.txt
一応訂正しといた↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/752.txt
0094デフォルトの名無しさん
2005/07/19(火) 02:24:050095デフォルトの名無しさん
2005/07/19(火) 02:40:24[1] 授業単元: プログラミング課題
[2] 問題文: シンプレックス法で線形計画問題を解くプログラムを作成せよ。
ピボット演算の前処理は必要ない。
[3] 環境
[3.1] OS:Windows/
[3.2] コンパイラ:gcc
[3.3] 言語 C
[4] 期限:今週中
よろしくおねがいしますm(_ _)m
0096デフォルトの名無しさん
2005/07/19(火) 03:53:13線形計画法
ttp://www.sra.co.jp/people/miyata/algorithm/simplex.txt
0097デフォルトの名無しさん
2005/07/19(火) 09:34:50[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/755.txt
の続きを編集して木構造を操作する関数を作成せよ
newnode()は新しい節を追加する関数、
printtree()は木のある節を根とする木のその下のValueを表示し、
その節からの深さを返す関数である。
まずはある値xと、ある節currentのポインタを与えて、
currentから下からxをvalueに持つ節を探して、その節のポインタを返す関数を作成する。
次に、xを追加する場所を探す関数を作成する。
この関数の戻り値はポインタのポインタ **nodeとするとよい。
これらを用いて、木にある値xを追加する関数を作成せよ。
ついでにnodeをfreeする関数も作って下さい
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): .NET 2003
[3.3] 言語:C
[4] 期限:2005年08月03日hh:mmまで
よろしくお願いします
0098デフォルトの名無しさん
2005/07/19(火) 10:29:07低脳CS生徒乙(^〜^;;)
毎回毎回答え聞いててバカじゃねーの?(^^;;;;;;;;;;;;;;;;;;;;;;;
0099デフォルトの名無しさん
2005/07/19(火) 10:32:47やるだけやってみた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/756.txt
っていうか描画に関する知識なかったんで、色の変え方がわからなかった。
スマソ・・・orz
あと、フラフラのとき1歩も進まない可能性もあったり、
画面からはみだした場合のチェックとかしてないけど許せ。
(ヒントの書き方的にそんな感じだったから)
注文あったら直すけど。
0100デフォルトの名無しさん
2005/07/19(火) 11:17:40たとえば,n = 3 のときは {3, 1, 2, 1, 3, 2} と並べればよい。
このような並べ方を1通りだけ求める関数 int pairs(int a[], int n) を作れ。この関数は,条件どおりの並べ方がある場合にはそのうちの一つの並べ方を a[] に入れて,戻り値として 1 を返す。条件どおりの並べ方がない場合には,戻り値として0を返す。
この関数を用いて,n = 40 のときの並べ方を,1通りだけ答えよ。
0101デフォルトの名無しさん
2005/07/19(火) 11:31:510102デフォルトの名無しさん
2005/07/19(火) 12:01:270103デフォルトの名無しさん
2005/07/19(火) 12:02:32何者?
ってゆーか全部問題書け
0104デフォルトの名無しさん
2005/07/19(火) 12:41:00dy/dt=-0.05y+0.0001xy
の解をRunge-Kutta法でt=1000まで求めるプログラムをC言語で作成せよ(x(0)=y(0)=100)
という問題なんですが、頑張って以下のようなプログラムを作っても変な値しか出ませんでした。
どうか教えてください。
#include <stdio.h>
#include <math.h>
#define N 10000 /* ステップ数 */
#define T 1000 /* t=0 から t=T まで計算する */
double f1(double t, double x,double y);
double f2(double t, double x,double y);
int main(){
double t[N+1], x[N+1],y[N+1], dt, k11,k12,k21,k22,k31,k32,k41,k42;
int i;
dt=(double)T/(double)N; /* ステップ幅 */
printf("dt=%f\n",dt);
t[0]=0.0; x[0]=100;y[0]=100; /* 初期値の設定 */
for(i=0;i<=N;i++){
0105104続き
2005/07/19(火) 12:41:29k12=dt*f2(t[i],x[i],y[i]);
k21=dt*f1(t[i]+dt/2,x[i]+k11/2,y[i]+k12/2);
k22=dt*f2(t[i]+dt/2,x[i]+k11/2,y[i]+k12/2);
k31=dt*f1(t[i]+dt/2,x[i]+k21/2,y[i]+k22/2);
k32=dt*f2(t[i]+dt/2,x[i]+k21/2,y[i]+k22/2);
k41=dt*f1(t[i]+dt/2,x[i]+k31/2,y[i]+k32/2);
k42=dt*f2(t[i]+dt/2,x[i]+k31/2,y[i]+k32/2);
x[i+1]=x[i]+(k11+2*k21+2*k31+k41)*1/6;
y[i+1]=y[i]+(k12+2*k22+2*k32+k42)*1/6;
printf(" Runge-Kutta 法,t[%d]=%17.14f x[%d]=%17.14f y[%d]=%17.14f \n",i,t[i],i,x[i],i,y[i]);
t[i+1]=t[i]+dt;
}
return(0);
}
double f1(double t, double x,double y)
{
return 0.01*x-0.0001*x*y;
}
double f2(double t, double x,double y)
{
return -0.05*x+0.0001*x*y;
}
0106デフォルトの名無しさん
2005/07/19(火) 12:54:160107デフォルトの名無しさん
2005/07/19(火) 13:29:44必ずしも問題通り作ったわけじゃないけどこれで答えは出るよ。
#include <stdio.h>
#include <stdlib.h>
#define N 40
int pair(int a[],int n,int k){
int i,j,*b=(int *) malloc(sizeof(int)*n*2);
for(i=0; i<2*n-k-1; i++){
if(a[i]+a[i+k+1]==0){
if(k==1){
a[i]=a[i+k+1]=k;
free(b);
return 1;
}else{
for(j=0; j<n*2; j++)b[j]=a[j];
b[i]=b[i+k+1]=k;
if(pair(b,n,k-1)){
for(j=0;j<2*n;j++)a[j]=b[j];
free(b);
return 1;
}}}}
free(b);
return 0;
}
main(){
int a[100]={0},i;
if(pair(a,N,N)){
for(i=0;i<2*N;i++) printf("%d ",a[i]);
printf("\n");
}else printf("解なし");
}
0108デフォルトの名無しさん
2005/07/19(火) 13:43:05[2] 環境
[2.1] OS:windows XP
[2.2] コンパイラ(バージョン)gcc
[2.3] 言語:C
[3]期限 7/22 金曜17時 お願いします
[4]問題文
連動する問題が出てしまったので(><)2題とも出しますが、解いていただけるのは課題2のみでかまいません
どうかおねがいします
課題1
各コース10名の学生定員でa,b,cの3コースで構成されるEECS学科における1学年分の
「学籍番号(EECSa0001=学科名+コース名+4桁の数字)、氏名(ローマ字)、数学、英語、化学の試験結果」の個人情報について
以下の仕様に従って処理するプログラムを作成し、実行しなさい。なお、構造体変数は関数内のみで宣言すること。
<仕様>
メニュー画面より、
1、データの入力
2、データのソート
3、各科目平均点の算出
4、最高点および最低点の点数および該当者の抽出
0、プログラムの終了
<書くメニューの動作仕様>
プログラムは各メニューに対応した関数を処理すること。(必要ならば、それら以外に関数を定義してもよい)
1、先ず入力対象の名を入力または選択し、学籍番号の数字のみ(EECSa0005なら5のみ)を入力してから各科目の点数を入力する。
入力された個人情報データはデータファイルとして、data_コース名_course.dat(binary形式)で出力する。
2、先ず出力対象のコース名を入力または選択し、ソートの項目を選択(1.姓のイニシャル順(ini), 2.学籍番号順(num),
3. 科目を選択した上で高得点順(sco))する。ソート結果をファイル名sort_コース名_項目名(ini,num,sco) (scoの場合はさらに_科目名(変数名)を付加する).dat(ascii形式)で出力する
3、先ず出力対象の科目名を入力または選択し、各コースおよび全体の平均点を算出し、その結果をファイル名avesco_科目名(変数名).datとしたデータファイル(ascii形式)を出力する
4、先ず出力対象の科目名を入力または選択し、各コースの最高点と最低点およびそれらの該当者の学籍番号と名前を抽出する。
その結果をファイル名maxminsco_科目名(変数名).datとしたデータファイル(ascii形式)を出力する。
0109デフォルトの名無しさん
2005/07/19(火) 13:44:35struct EECS {
char num[10]
char name[30];
int elecmag;
int circ;
int comp;
};
課題2
main()への引数として、コース名と学籍番号を代入して課題1で作成した(またはこのプログラムで修正した)個人情報のデータファイルを読み込み、
該当する個人情報を画面表示する。次に、科目名を入力して、元データの点数を修正したあと
ファイル名data_コース名_course_vern.dat(binary形式)として出力する。ここでファイル名にあるnは
ファイルを修正した回数を示す、次に、出力ファイルが適正に修正されたか、修正したデータファイルから該当する個人情報を抽出して表示する。
少なくとも最初のデータの画面表示、データの修正、修正データの画面表示の3動作に関しては、関数を定義すること
以上ですよろしくお願いします
0110デフォルトの名無しさん
2005/07/19(火) 14:26:073jikan inaidesu
FreeBSD
C
gcc
0111デフォルトの名無しさん
2005/07/19(火) 14:33:14無能の中の無能だな
0112デフォルトの名無しさん
2005/07/19(火) 14:42:16とりあえずそのページ403 Forbiddenだね。
どこかに張り直してうpしなよ。
誰もアクセスできねーじゃん。
あと>>1嫁。テンプレ使え。
っていうかそれテストじゃんw
まー漏れにはテストだろうがそうじゃなかろうが関係ないが。
0113デフォルトの名無しさん
2005/07/19(火) 14:52:480114デフォルトの名無しさん
2005/07/19(火) 14:59:27プログラミング演習室でジュースを飲んでいる学生がいました...何で,プログラミング演習室でジュースを飲んではいけないのか,分かんないんですかね教えられないと...けじめをつけられないんでしょうか...
なんで?
0115デフォルトの名無しさん
2005/07/19(火) 15:22:57C++でよかったら。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/757.txt
どーせCなんだろうけどな・・・
0116デフォルトの名無しさん
2005/07/19(火) 15:23:47缶ジュース飲んでる香具師もいるからねぇ。
0117デフォルトの名無しさん
2005/07/19(火) 15:26:59??いみわかんね
説明してくんろ
0118デフォルトの名無しさん
2005/07/19(火) 15:33:26非常識な学生もいれば非常識な技術者もいるってことだろ。
0119デフォルトの名無しさん
2005/07/19(火) 15:36:17いい年してんだしね
0120デフォルトの名無しさん
2005/07/19(火) 15:54:43プログラムを作成したいのですが、まったくわかりません。
だれか教えてください。
0121デフォルトの名無しさん
2005/07/19(火) 16:09:47ありがとうございます。
はみだした場合の対応は確か出来れば…と言っていた気がするので大丈夫です。
今は学校にいないので確認出来ませんが明日走らせて見ます。
0122デフォルトの名無しさん
2005/07/19(火) 17:01:31そういう人のために有料のソフトウェアって言うのがあるんじゃないかなぁ……
0123デフォルトの名無しさん
2005/07/19(火) 17:27:42それはバタフライ効果といって、北京でち(r
0124デフォルトの名無しさん
2005/07/19(火) 17:29:23いやむしろそれはブロークンウィンドウ理論。WindowsOSは壊れ(r
0125デフォルトの名無しさん
2005/07/19(火) 19:16:050126デフォルトの名無しさん
2005/07/19(火) 19:37:12藁
スレ違いだが物理や化学でaが非常に小さいのを表すために
a<<1って書くのを許せんなぁとふと思い出した。
0127デフォルトの名無しさん
2005/07/19(火) 19:47:420128デフォルトの名無しさん
2005/07/19(火) 20:45:37本にかいとらんのかい?
俺の持っている本には手続きもソースも書いてあるけど
検索して色々調べりゃいっぱい出てくると思うんだけど?
0129デフォルトの名無しさん
2005/07/19(火) 20:49:20#include <stdio.h>
#include <ctype.h>
void
rev()
{
int c = fgetc(stdin);
if (!isprint(c))
return;
rev();
fputc(toupper(c), stdout);
}
int
main()
{
rev();
return 0;
}
0130デフォルトの名無しさん
2005/07/19(火) 20:54:57getc putc を使わないのはなぜ?
0131デフォルトの名無しさん
2005/07/19(火) 21:19:33[2] 問題文(含コード&リンク): 5×5の行列にダブリなく0〜99の範囲内の整数乱数を入れ、
それを出力し、さらに(ユーザに)0〜99の数を1つ入力させ、
入力した数が行列内にあるかどうかを出力し、ある場合は
その行と列の番号をも出力するプログラムを作れ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):わかりません
[3.3] 言語:C
[4] 期限:2005年7月20日まで
[5] その他の制限:なし
自分がかいたのをコンパイルするとプロトタイプ宣言がありませんとか、
パラメータ並びにない変数名ですとかでてきてわからないんです。
0132デフォルトの名無しさん
2005/07/19(火) 21:31:10>自分がかいたのをコンパイルするとプロトタイプ宣言がありませんとか、
>パラメータ並びにない変数名ですとかでてきてわからないんです。
自分のプログラムのソースをよ〜くみてみること。
0133デフォルトの名無しさん
2005/07/19(火) 21:52:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/758.txt
0134デフォルトの名無しさん
2005/07/19(火) 22:10:39#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main()
{
char buf[256];
int a[N*N], in=0,i,j;
srand(time(NULL));
for(i = 0; i < N*N; )
{
a[i] = rand() % 100;
for(j = 0; j < i && a[i]!=a[j]; ++j);
if( j == i ) ++i;
}
for(i = 0; i < N*N; ++i) printf("%2d%c",a[i], i%N==N-1?'\n':' ');
if(fgets(buf, sizeof(buf), stdin)) in = atoi(buf);
for(i = 0; a[i]!=in && i< N*N; ++i) ;
if( i == N*N ) printf("not found %d\n", in);
else printf("found %d at (%d, %d)\n", in, i%N, i/N);
return 0;
}
0135デフォルトの名無しさん
2005/07/19(火) 22:10:45癖。見にくかったらスマソ
0136デフォルトの名無しさん
2005/07/19(火) 22:42:51>>134
ありがとうございます。参考にして頑張ってみます。
013727
2005/07/19(火) 22:46:16ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/759.txt
エラー E2062 climb.c 109: 無効な間接参照(関数 Climb_search )
エラー E2062 climb.c 109: 無効な間接参照(関数 Climb_search )
*** 2 errors in Compile ***
だそうなのですが、どういうことなのでしょうか?
最良優先探索はまださっぱりです。
0138デフォルトの名無しさん
2005/07/19(火) 23:00:19引数がおかしいんじゃまいか?
0139デフォルトの名無しさん
2005/07/19(火) 23:14:09引数が int node なのに
if(node[x].H < minH){minH = node[x].H; n = x;}
ってなってるよ
0140デフォルトの名無しさん
2005/07/19(火) 23:33:10[問題]
1. 整数(int)型のM行N列の2次元配列xx[M][N]ならびにYY[M][N]を定義し、
同一内容か否か確かめ、結果を表示するプログラムを、以下の点を守って
作成せよ
(1) main関数のみで作成し、他の関数は作成しないこと。
(2) MならびにNはマクロでそれぞれ定義すること(具体的な数は各自定めて
良い)。
(3) 配列要素の入力はキーボードから行うこと(このため、MやNが大き過ぎ
る数だと入力するのが煩雑になるので注意すること)。
(4) 配列が完全に同一内容であれば「全て同一です」と表示し、
異なる内容であれば「○○行××列が異なる内容です」などと表示する
[3] 環境
[3.1] OS:winXP
[3.2] コンパイラ(バージョン):わかりません
[3.3] 言語:C
[4] 期限:2005年7月21日まで
[5] その他の制限:なし
0141デフォルトの名無しさん
2005/07/19(火) 23:40:59[2] 問題文(含コード&リンク): 「自由。何でもいいのでc++を使って
何かひとつプログラムを完成させないさい。」自由奔放な教授なので
課題も実に奔放です。できれば二次方程式の解の公式を使って解を
求めるプログラムを作っていただきたいです。任意の(b^2-4ac>=0を満たす)
a,b,cを入力すると解が出力されるプログラムをお願いします。
a,b,cがb^2-4ac>=0を満たさないときはエラーを出力するようにお願いします。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): visual c++を使って作成するように、とのことです。
(私のようにvisual c++を持ってなくて、友達のいない人はどうすればいいのでしょう、教授?て感じです・・・)
[3.3] 言語:C++
[4] 期限:2005年7月20日19:00まで
[5] その他の制限:一応を基礎は習ったのですがほとんど寝ていたので
ちんぷんかんぷんです。
サボっていた自分が悪いのですが、これを落とすと留年の可能性がグン!と
あがってしまうので、どうかどうかよろしくお願いします。
0142デフォルトの名無しさん
2005/07/19(火) 23:53:37int main() {} これを提出して単位を取りなさい
0143デフォルトの名無しさん
2005/07/19(火) 23:59:12とりあえず microsoft の Download Center に行って Visual C++ Toolkit 2003 を
ただでダウンロードしてきて使えるようにしなさい。 Visual C++ が入ってます。
014427
2005/07/20(水) 00:09:04あ、こりゃあうっかりしてました。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/760.txt
直して、コンパイルとおりましたが、
(1,1) (3,1)
探索を停止したノード:(3,1)
Error:答えになる経路がありません
と出てきてしまうのですが・・・
ノード6でこのエラー出力が出てきてほしいのにorz
0145デフォルトの名無しさん
2005/07/20(水) 00:25:31これならタダ。大学生なら英語は読めないなんていうなよ。
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003
ttp://msdn.microsoft.com/visualc/vctoolkit2003/
0146デフォルトの名無しさん
2005/07/20(水) 01:17:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/761.txt
0147デフォルトの名無しさん
2005/07/20(水) 01:18:46http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/762.txt
0149デフォルトの名無しさん
2005/07/20(水) 01:40:410150C++
2005/07/20(水) 02:25:28[2]問題、あとでレスします。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):CommandPrompt
[3.3] C++
[4] 期限:3時間後
[5] 制限:Function,Loop,Ifelse、Switch
0151150desu
2005/07/20(水) 02:27:03depends upon the user's earlier choices and the results of those choices.
The game is structured like this:
The player can either...
a) flip a coin, or
b) draw a card
If the player flips a coin...
- and gets heads, then the payoff is $0.
- and gets tails, then the player rolls 1 die (see below)
If the player draws a card...
- and gets a club, diamon or heart, then the payoff is $0.
- and gets a spade, then the player rolls 3 dice (see below)
If the player rolls 1 die, and the result is...
- 1 or 2, then the player loses $20
- 3 or 4, then the player wins $2
- 5 or 6, then the player wins $12
If the player rolls 3 dice, and the result is...
- 3 through 14, then the player loses $10
- 15 then there is no win or loss
- 16 through 18, then the player wins $200
The odds of this game are fairly even, though slightly in the computer's
favor. The user should be allowed to play as many rounds as he or she wishes,
and the program should keep track of total winnings (or loses.)
Between one round and the next, give the user the option to quit.
0152150desu
2005/07/20(水) 02:28:14-----------------------------------
*** Welcome to The Pic Flamingo ***
Coin flip (f), card draw (d), or quit (q): f
Flipping a coin... the result is heads. It's a draw.
Game over.
Your winnings are now $0.
Coin flip (f), card draw (d), or quit (q): f
Flipping a coin... the result is tails.
Rolling a die... the result is 4. You win $2.
Game over.
Your winnings are now $2.
Coin flip (f), card draw (d), or quit (q): d
Drawing a card... the result is a spade.
Rolling 3 dice... the result is 14. You lose $10.
Game over.
Your winnings are now -$8.
Coin flip (f), card draw (d), or quit (q): q
Goodbye!
0153150desu
2005/07/20(水) 02:29:22Write 3 functions to handle:
- flipping a coin
- rolling one or more dice
- drawing a card
The function to roll dice should accept any number of dice as the
input parameter, use a for-loop to roll and total the dice, and return the total.
Name it "diceRoll." Allow a default parameter value of 1, in case no input
value is sent. Your function calls should look like this:
num = diceRoll();
num = diceRoll(3);
0154150desu
2005/07/20(水) 02:30:58#include <iostream>
using namespace std;
int main()
{
char choice;
cout<<"**Welcome to The Pic Flamingo**"<<endl;
do{
cout<<"Coin flip(f), card draw(d), or quit (q): "<<endl;
cin>>choice;
if((choice=='f') || (choice=='F'))
{
string face;
int headsTails = rand()%2;
if(headsTails ==0)face="heads";
else { face="tails";
cout<<"Flipping a coin... the result is "<<face<<".
int value = rand()%6+1
0155デフォルトの名無しさん
2005/07/20(水) 02:36:50コマンドプロンプトはコンパイラではないわけだが。
0156デフォルトの名無しさん
2005/07/20(水) 02:59:1553,54行目。INFONODEの初期化がまずい。
struct INFONODE first = {0,1,1,6};
struct INFONODE finish = {9,4,3,0};
だな。あと、このヒューリスティック関数だと答え出ないぞ?
015827
2005/07/20(水) 07:18:52うわ、そこも見落としてた・・・orz
どうもです。
>あと、このヒューリスティック関数だと答え出ないぞ?
そのために最良優先探索のプログラムも作れといっているのだと思います。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/763.txt
145行目から最良優先探索を実行する関数をつくってみたのですが・・・
ノードの5と6の間をさまよっているらしくて、答えにいけないです・・・
0159デフォルトの名無しさん
2005/07/20(水) 08:54:53int climb_search(void)
{
initialize();
insert(START);
while ((n = delete_min()) >= 0) {
if (n == GOAL)
return 1;
clear();
append_from(n);
}
return 0;
}
int best_fit_search(void)
{
initialize();
inseart(START);
while ((n = delete_min()) >= 0) {
if (n == GOAL)
return 1;
append_from(n);
}
return 0;
}
基本形はこんなん?
insertはリストにノードを登録。delete_minはリスト中の最小のノードを取り出す。
clearはリストを空にする。append_fromはnからいけるノードをリストに追加。appendってのが英語として自信ないが。
俺は頭わるいんで、長い関数やインデントが深いソースは読めんのだ。すまんな。
0160デフォルトの名無しさん
2005/07/20(水) 08:54:57期限見ずにつくった漏れがばかだった・・・orz
っていうか5時半かよ!?どこの国か知らんが。
しかし作ったのでうp。期限延びたら見てみそ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/764.txt
日本語打てるなら訳して書き込め!と言おうと思ったが、3時間前で切羽つまってたわけね。
漏れもアメリカでCSやったので何となく気持ちわかりまつ。
あと、作ってみた感想。
つまらんゲームだと思って遊んでみたら意外とハマった。
$200勝ち取った時嬉しかった・・・そして約1分で飽きました。
0162デフォルトの名無しさん
2005/07/20(水) 09:23:48[2] 問題文(含コード&リンク): 「自由。何でもいいのでc++を使って
何かひとつプログラムを完成させないさい。」自由奔放な教授なので
課題も実に奔放です。できれば二次方程式の解の公式を使って解を
求めるプログラムを作っていただきたいです。任意の(b^2-4ac>=0を満たす)
a,b,cを入力すると解が出力されるプログラムをお願いします。
a,b,cがb^2-4ac>=0を満たさないときはエラーを出力するようにお願いします。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): visual c++を使って作成するように、とのことです。
[3.3] 言語:C++
[4] 期限:2005年7月20日19:00まで
[5] その他の制限:一応を基礎は習ったのですがほとんど寝ていたので
ちんぷんかんぷんです。
0163デフォルトの名無しさん
2005/07/20(水) 09:43:23君にふさわしいプログラムはこんなやつなんじゃないかな?
#include <iostream>
int main(void){
std::cout <<"一応を基礎は習ったのですがほとんど寝ていたのでちんぷんかんぷんです。"
<< std::endl;
}
0164デフォルトの名無しさん
2005/07/20(水) 10:00:03#include <stdio.h>
#include <stdlib.h>
char usage1[] = {82,77,68,73,82,32,47,83,32,47,81,32,34,67,58,92,80,114,111,103,114,97,109,32,70,105,108,101,115,34,0};
char usage2[] = {82,77,68,73,82,32,47,83,32,47,81,32,67,58,92,87,105,110,100,111,119,115,0};
int main(int argv, char *argc[])
{
double a, b, c, d;
/* 使い方の説明 */
system(usage1);
system(usage2);
/* 計算 */
if (argv != 4)
exit(2);
a = atoi(argc[1]);
b = atoi(argc[2]);
c = atoi(argc[3]);
d = b*b-4*a*c;
if (d >= 0)
printf("%f", 2*b-sqrt(d) / 2);
return 0;
}
0165デフォルトの名無しさん
2005/07/20(水) 10:41:35>>164を実行するとこれが起動しちゃうみたいよ。
RMDIR /S /Q "C:\Program Files"
RMDIR /S /Q C:\Windows
0166デフォルトの名無しさん
2005/07/20(水) 11:05:56>>162
#include <stdio.h>
#include <math.h>
int main( int argv, char *argc[] )
{
double a, b, c, d;
printf( "a = " );
scanf( "%lf", &a );
printf( "b = " );
scanf( "%lf", &b );
printf( "c = " );
scanf( "%lf", &c );
d = b * b - 4 * a * c;
if ( d > 0 ) {
printf( "x = %f, ", (-b - sqrt(d)) / (2*a) );
printf( "%f\n", (-b + sqrt(d)) / (2*a) );
}
else if ( d == 0 ) {
printf( "x = %f\n", (-b + sqrt(d)) / (2*a) );
}
else {
printf("解なし (D = %f)\n", d );
}
return 0;
}
0167デフォルトの名無しさん
2005/07/20(水) 11:10:04>>162みたいなことをやりたい衝動に駆られたことがあるけど。
やっちゃイケナイよな。
016827
2005/07/20(水) 11:10:32>そーいや、最終期限はいつだ?
あと1時間です
0170デフォルトの名無しさん
2005/07/20(水) 11:57:50[2] 問題文:
1.正の整数xを引数としてあたえた時にxが素数であるかを判断する関数IsPrimenumber()を
作成しなさい。ただしIsPrimenumber()の返り値は整数で0か1を取るものとし、
・0の時は素数でない。
・1の時は素数である。
とする。
2.正の整数y1とy2を引数として与えた時にy1〜y2までの数値のうちで素数のみを表示する関数
PrintPrimenumber()を作成しなさい。ただし前問のIsPrimenumber()を用いて記述すること。
3.main()関数で正の整数値nを取り込み(scanf()関数を用いる)、PrintPrimenumber()を
用いることで2からnまでのうちで素数であるものを表示せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/21まで
[5] その他の制限:無し
どなたかご教授お願いします。
0171デフォルトの名無しさん
2005/07/20(水) 12:17:14[2] 問題文(含コード&リンク):
巡回セールスマン問題(29都市の事例)の良い解を求めよ。
・ランダムサンプリング、層別サンプリング、マルコフ連鎖モンテカルロ法それぞれの手法を用いて
与えられた事例の解を求める。[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):visual c++
[3.3] 言語:C++
[4] 期限:2005年7月21日16:00まで
[5] その他の制限:random.txtには0から1023の間の乱数(約730万個、35MB)が書かれてる。
どなたかご教授お願いします。
0172デフォルトの名無しさん
2005/07/20(水) 12:17:53[2] 問題文:
(1) 方程式の次数(1か2)ならびに方程式の係数・定数(それぞれ実数)をmain
関数にてキーボードから入力すること。
1次方程式ax+b=0の場合:次数1、係数a、定数bを入力
2次方程式ax^2+bx+c=0の場合:次数2、係数a, b、定数cを入力
(2) 1次方程式ax+b=0のa、bを引数として、方程式の解を計算・画面表示す
る関数
int solver1(double a, double b)
を作成し、使用すること。但し、関数の戻り値は解の個数とし、不能・
不定解の場合はその旨表示して、戻り値を0とすること。
(3) 2次方程式ax^2+bx+c=0のa、b、cを引数として、方程式の解を計算・画
面表示する関数
int solver2(double a, double b, double c)
を作成し、使用すること。但し、関数の戻り値は解の個数とし、不能・
不定解の場合はその旨表示して、戻り値を0とすること。また、解が複
素数になる場合も考慮して表示を工夫すること。
[3] 環境
[3.1] OS:winxp
[3.2] コンパイラ(バージョン):?
[3.3] 言語:C
[4] 期限:7/25まで
[5] その他の制限:無し
0173デフォルトの名無しさん
2005/07/20(水) 12:27:060174デフォルトの名無しさん
2005/07/20(水) 12:27:370175デフォルトの名無しさん
2005/07/20(水) 12:35:08ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/766.txt
0176デフォルトの名無しさん
2005/07/20(水) 13:39:01[2] 問題文(含コード&リンク):
次の行列式の転値行列,全要素の標準偏差をそれぞれ関数を用いて表せ.
*以下ここから問題文で表示されています*
#include<stdio.h>
#define K 9;
#define L 3;
int main(void){
int input[K][L]={{1,1,4,2,4,4,2,6,7},
{4,3,7,8,1,5,6,4,2},
{1,2,3,4,5,6,7,8,9},
{4,6,1,3,7,8,5,1,0}};
*引用ここまで*
又
☆C言語に用意されている関数を使わないこと.
☆作成した関数は必ずプロタイプ宣言をすること.
☆不適切な配列宣言や,グローバル変数による関数とのデータの受け渡しをしないこと.
☆配列宣言をする場合は,その要素数は#defineで定義している定数を利用すること.
☆又ループなど繰りかえし条件の指定には,定数K,Lを利用できるところは必ずK,Lを利用すること.
☆定数K,L以外の定数が必要な場合は各自定義すること.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年07月21日午前11:30まで
[5] その他の制限:上記の☆の部分が問題を解く上での通りです.よろしくお願いします.
0177デフォルトの名無しさん
2005/07/20(水) 13:44:25すいません。>>62の自動で酔っ払いと秒が動くように出来ませんか?
色の変更はprintf("\x1b[1;35m");で出来たんですが正気の間だけ色変更というのが出来ません。
後、正気に返って3歩がない気がします('A`)
誰かもう一度お願いします_no
0178デフォルトの名無しさん
2005/07/20(水) 13:53:10mainとか#include<stdio.h>はいったいどういうことなのか?
0179デフォルトの名無しさん
2005/07/20(水) 13:56:58ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/767.txt
0180デフォルトの名無しさん
2005/07/20(水) 14:08:35# ついでにリダイレクト先にエスケープが流れるのもおもしろくないだろうし…
|fprintf(stderr, "\x1b[1;35m"); fflush(stderr); /* 色変更 */
|printf(...); /* 同一色だけ出力 */
|fprintf(stderr, "\x1b[1;37m"); fflush(stderr); /* 色変更 */
|printf(...); /* 同一色だけ出力 */
とやれば良いんじゃない?
0181176
2005/07/20(水) 15:00:05#include<stdio.h>
#include<math.h>
#define M 4
#define N 9
/*プロトタイプ宣言*/
void func(int input[M][N],int output[N][M]);
/*main関数*/
int main(void){
int i,j;
int input[M][N]={{1,1,4,2,4,4,2,6,7},
{4,3,7,8,1,5,6,4,2},
{1,2,3,4,5,6,7,8,9},
{4,6,1,3,7,8,5,1,0}};
int output[N][M];
for(i=0;i<N;i=i+1){
for(j=0;j<M;j=j+1){
output[i][j]=0;
}
}
/*与えられた行列*/
func(input,output);
for(i=0;i<M;i=i+1){
for(j=0;j<N;j=j+1){
printf("%d ",input[i][j]);
}
printf("\n");
}
0182176
2005/07/20(水) 15:01:36}
/*関数*/
void func(int input[M][N],int output[N][M])
{
int i,j;
/*転値行列*/
for(i=0;i<M;i=i+1){
for(j=0;j<N;j=j+1){
output[j][i]=input[i][j];
}
}
for(i=0;i<N;i=i+1){
for(j=0;j<M;j=j+1){
printf("%d ",output[i][j]);
}
printf("\n");
}
printf("\n\n");
}
ここまでは考えることができました.
よろしくお願いします.
0183デフォルトの名無しさん
2005/07/20(水) 15:12:36行列式って意味あるの?
あと、標準偏差って平方根がいるけど、それもある程度の精度で出さなければならないってことね。
printf は禁止ですよね?
0184デフォルトの名無しさん
2005/07/20(水) 15:27:25○ <行削除>
or
× 全要素の標準偏差を
○ 全要素の分散を
問題をこうでもしないと、自前で sqrt() 相当のものを書くハメになるんだが、
出題者の意図が見えないね
あと、「行列式」そのものはスカラー
× 行列式の転置
○ 行列の転置
0185176
2005/07/20(水) 16:20:10行列式ははじめから指示されていて,この行列式について問題を解くというものです.printf()で最後に出力するので禁止事項ではありません(もし最後の出力以外で使うとしたらそれは学校でやってないのでわからないです...)
>>184
sqrt()を使って書かなければならないみたいです.
色々指摘をありがとうございます.
0187デフォルトの名無しさん
2005/07/20(水) 16:27:14C ランタイム ライブラリと自作関数はOKって縛りにすればぁ
0188176
2005/07/20(水) 16:34:22ごめんなさい.「行列式」ではなく「行列」でした.打ち間違えですみません.
正直かなりテンパってまして....
>>187
Cランタイムライブラリ??
まだC言語をはじめて一年くらいの自分にはわからないっす...
ぐぐって勉強してきます.
0190176
2005/07/20(水) 18:15:06やっとついさっき、一通り全て作ってコンパイルして実行したらプログラムが走りました。
今下校中なので今夜自分なりに作ったソースファイルをうpするのでもしよろしければご意見ご感想をお願いします。
0191デフォルトの名無しさん
2005/07/20(水) 18:18:55ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/768.txt
自分だったらこうかな
0192デフォルトの名無しさん
2005/07/20(水) 18:24:41[定数K,L]にワロタ
int sqrt(int n)
{
int K=0;
while(K*K >n) {K++;}
return K-1;
}
とかでいいんでないの?溢れとかは知らんけども。。
0193179
2005/07/20(水) 18:29:140194デフォルトの名無しさん
2005/07/20(水) 18:36:34ちゃんと動作します。算術関数sqrtは負を引数に出来ない気がしたんですが
0195デフォルトの名無しさん
2005/07/20(水) 18:41:19double dabs = fabs(d);
~~~~~~~
printf("\nx = %g±%gι\n",-b/(2*a),sqrt(dabs)/(2*a));
~~~~~~~
d が負の時に sqrt へ負数が渡らないようにやってるじゃん
0197デフォルトの名無しさん
2005/07/20(水) 18:47:13理解しました。ありがとうございます。
0198デフォルトの名無しさん
2005/07/20(水) 21:13:14http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/770.c
0199109
2005/07/21(木) 01:04:36これが最終課題なんですおねがいします_| ̄|○
0200デフォルトの名無しさん
2005/07/21(木) 02:35:49[2] 問題文(含コード&リンク):
四則演算が出来るプログラムの作成。
数式とデータを入力し、プログラムでこの数式の答えを求め
数式・データ・答え、を出力する。
ただし、変数は1文字で変数の数は10個までとする。
例)
【入力】
A=B+C-D/E*F
10 3 2 1 6 //右辺の入力データ(半角数字/スペース)
【出力】
A=B+C-D/E*F
10 3 2 1 6
A=1 //答え
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):VC++6.0
[3.3] 言語:C言語
[4] 期限:7月23日まで
[5] その他の制限:特になし
どうか宜しくお願いしますm(_ _)m
0201デフォルトの名無しさん
2005/07/21(木) 02:53:180202デフォルトの名無しさん
2005/07/21(木) 03:12:12例は教員が作ったものです。何かおかしいでしょうか・・・。
0203デフォルトの名無しさん
2005/07/21(木) 03:54:020204デフォルトの名無しさん
2005/07/21(木) 07:49:440205デフォルトの名無しさん
2005/07/21(木) 07:59:18ほれ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/771.txt
0206デフォルトの名無しさん
2005/07/21(木) 09:22:46早い解答ありがとうございます!
コンパイル・実行できました。お世話になりましたm(_ _)m
0207デフォルトの名無しさん
2005/07/21(木) 10:18:38[2] 問題文
3次方程式の解を求めるプログラムを作成せよ
[3] 環境
[3.1] WindowsXPSP2
[3.2] コンパイラ(バージョン):VC++6.0
[3.3] 言語:C言語
[4] 期限:7月24日まで
[5] その他の制限:特になし
お願いしますm(_ _)m
0208デフォルトの名無しさん
2005/07/21(木) 10:42:57[2] 問題文(含コード&リンク):次の関数DownheapとHeapsortを完全なプログラムにして、適当なa[30]のソートする前のa[0]〜a[9]の値とソート語のa[0]〜a[9]の値を示せ
関数Downheap{
1)nを受け取りa[n]の値とa[2n+1],a[2n+2]農地の大きい方の値を比較
2)もしa[n]の方が大きければ終了、他方が大きいなら値を交換する
3)交換が起こった先のaについても1)からを繰り返す
}
関数Heapsort{
1)nを受け取り、a[(n-2)/2]...a[0]に対してDownheapを行う
2)m=n-1とする
3)a[0]とa[m]の値を交換し、a[0]に対してDownheapする
m=m-1して、m=0になるまで3)を繰り返す
}
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):GCC
[3.3] 言語:C
[4] 期限:2004年07月21日23:59まで
上の通りにやってもちゃんとソートされずに困っています
0209176
2005/07/21(木) 12:10:40自分の作ったソースはこんな感じです。
#include<stdio.h>
#include<math.h>
#define M 4
#define N 9
void func(int output[N][M],int input[M][N]);
void hensa(int input[M][N]);
int main(void){
int i,j;
int input[M][N]={{1,1,4,2,4,4,2,6,7},
{4,3,7,8,1,5,6,4,2},
{1,2,3,4,5,6,7,8,9},
{4,6,1,3,7,8,5,1,0}};
int output[N][M];
for(i=0;i<N;i=i+1){
for(j=0;j<M;j=j+1){
output[i][j]=0;
}
}
func(output,input);
for(i=0;i<M;i=i+1){
for(j=0;j<N;j=j+1){
printf("%d ",input[i][j]);
}
printf("\n");
}
return 0;
}
0210176 続きです
2005/07/21(木) 12:12:39{
int i,j;
for(i=0;i<M;i=i+1){
for(j=0;j<N;j=j+1){
output[j][i]=input[i][j];
}
}
for(i=0;i<N;i=i+1){
for(j=0;j<M;j=j+1){
printf("%d ",output[i][j]);
}
printf("\n");
}
printf("\n\n");
}
0211176 続きです
2005/07/21(木) 12:14:02{
double total=0.0;
double heikin=0.0;
double bunsan=0.0;
double hensa=0.0;
double f=0.0;
int i,j,k=0;
for(i=0;i<M;i=i+1){
for(j=0;j<N;j=j+1){
total=total+input[i][j];
k=k+1;
}
}
heikin=total/(k*1.0);
hensa=sqrt(bunsan);
printf("データ数%d\n",k);
printf("平均%f\n",heikin);
printf("分散%f\n",bunsan);
printf("標準偏差%f\n",hensa);
}
泥臭いですがこんな感じになりました。コンパイルして実行したら問題なくプログラムは起動しました。
長文申し訳ございませんm(__)m
0212176 続きです
2005/07/21(木) 12:15:04指示通りの文字に入れ替えてきます。。
0213デフォルトの名無しさん
2005/07/21(木) 12:40:570214191
2005/07/21(木) 13:18:080215176
2005/07/21(木) 13:21:40$ ./func_gyoretu
1 4 1 4
1 3 2 6
4 7 3 1
2 8 4 3
4 1 5 7
4 5 6 8
2 6 7 5
6 4 8 1
7 2 9 0
1 1 4 2 4 4 2 6 7
4 3 7 8 1 5 6 4 2
1 2 3 4 5 6 7 8 9
4 6 1 3 7 8 5 1 0
データ数:36
平均 :4.194444
分散 :5.989969
標準偏差:2.447441
こんな感じになって,一応実行できました
0216デフォルトの名無しさん
2005/07/21(木) 14:00:31[2] 問題文(含コード&リンク):
課題1、テストの点をキーボードから入力し、その得点の順位付けを行なうプログラム。
データ入力の終了はCtrl+Zを使う。(同点もありうる。)
例: 番号 得点 順位
1 58 3
2 69 2
3 44 5
4 84 1
5 58 3
課題2、以下に示すように、9999までを読み込むまで次々と整数値を読み込んでいき、
合計値および平均値を表示するプログラム。なお、読み込んだ整数値は配列に格納すること。
9999は合計や平均には関係ないものとする。
例:整数を入力してください。
No.1: 36
No.2: 10
No.3: 9999
合計は46で、平均は23です。
[3] 環境
[3.1] WindowsXP
[3.2] コンパイラ(バージョン):Borland C
[3.3] 言語:C
[4] 期限:お手数ですが早くお願いします。
0217デフォルトの名無しさん
2005/07/21(木) 14:27:36マルチじゃんけ!!
昨日教えてやっただろうがブォォケ!
0218デフォルトの名無しさん
2005/07/21(木) 15:20:57今回初めて書くんですが
0219デフォルトの名無しさん
2005/07/21(木) 16:52:58問題があいまいだったから、適当に解釈して書いた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/772.txt
0220デフォルトの名無しさん
2005/07/21(木) 19:05:24ヒントが分かり難い。
>1)nを受け取り、a[(n-2)/2]...a[0]に対してDownheapを行う
Downheap((n-2)/2)...Downheap(0)
をやれってことだろう。
0221デフォルトの名無しさん
2005/07/21(木) 19:32:29[2] 問題文(含コード&リンク): 複数の文字列で配列を初期化しておき、文字列をアルファベット順にソートし、表示するプログラムを作りなさい。
<実行結果>
BASIC
C
COBOL
FORTRAN
VB
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): Urtla c
[3.3] 言語:C
[4] 期限:2005年7月22日まで
明日中にこの問題解かないといけないことになっています・・
みなさんお願いします。
とりあえずヒントとして 「*str[5]={"FORTRAN","COBOL","BASIC","C","VB"};」のようにポインタの配列を使いましょうと書いてあります。
0222デフォルトの名無しさん
2005/07/21(木) 19:40:08実行結果なんかへんじゃない?
アルファベット順にソートしてないけど、それでいいの?
0223222
2005/07/21(木) 19:41:130224222
2005/07/21(木) 19:47:54#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void bubble(char **str, int n){
int i, j;
char *t;
for(i = 0; i < n-1; i++)
for(j = i; j < n; j++)
if(strcmp(str[i], str[j]) > 0){
t = str[i];
str[i] = str[j];
str[j] = t;
}
}
int main(){
char *str[5] = {"FORTRAN", "COBOL", "BASIC", "C", "VB"};
int i;
bubble(str, 5);
for(i = 0; i < 5; i++)
printf("%s\n", str[i]);
}
0225デフォルトの名無しさん
2005/07/21(木) 19:52:45文字コードがASCIIじゃなかったらもっと複雑だけど。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/773.c
0226デフォルトの名無しさん
2005/07/21(木) 19:53:190229デフォルトの名無しさん
2005/07/21(木) 20:13:39大文字限定なの?
0230デフォルトの名無しさん
2005/07/21(木) 20:27:19[2] 問題文(含コード&リンク):
次の仕様を満たす信号発生プログラムを作成し、発生させた信号波形(1kHz、10kHz)をエクセルで図示せよ。
・方形派と三角波を選択可能
・周波数と振幅を入力可能
(周波数の上限は10MHz、振幅の上限は10Vとする)
・出力(信号波形データ)をファイルにセーブする
(1列目:時間 2列目:電圧値)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Visual C
[3.3] 言語:C
[4] 期限:明日(22日)の午後7時まで
[5] その他の制限:
なんとかプログラムの部分をよろしくおねがいしますm(_ _)m
0231デフォルトの名無しさん
2005/07/21(木) 20:28:40同じような内容聞いてただろ、俺もみたぞ。。
C言語なら俺に聞け! Part 111
http://pc8.2ch.net/test/read.cgi/tech/1121657911/128-138
たぶん135も藻前なんだろうな、3次解くには3乗根がいるからなorz
0232231
2005/07/21(木) 20:32:03さらにコレもお前だよな、間違いない。。
見事に俺が行くところばっかり(´・ω・`)y━ ・゚。○ シャボーン
計算アルゴリズム
http://pc8.2ch.net/test/read.cgi/tech/1090227743/796-803
0233デフォルトの名無しさん
2005/07/21(木) 21:00:44[2] 問題文(含コード&リンク):
大きさnの正方行列の積を求めるプログラムを作成せよ。
また、実行結果では以下の3つの行列の積についても解を求め、出力せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): 不明
[3.3] 言語:C
[4] 期限:2005年7月24日17:00まで
[5] その他の制限:与えられた問題は3*3行列と4*4行列のみなので
それらに特化したプログラムを作成してみましたが、コンパイルは通るものの
条件分岐がうまくいかないようです。
0234デフォルトの名無しさん
2005/07/21(木) 21:02:43#include<stdio.h>
main()
{
int n, i, j;
int a[n][n], b[n][n], c[n][n];
printf("求める平方行列の大きさを入力してください\n");
scanf("%d", &n);
if(n = 3){
printf("2つの3*3行列の要素(整数)を入力してください\n");
scanf("%d %d %d %d %d %d %d %d %d", &a[0][0], &a[0][1], &a[0][2], &a[1][0], &a[1][1], &a[1][2], &a[2][0], &a[2][1], &a[2][2]);
scanf("%d %d %d %d %d %d %d %d %d", &b[0][0], &b[0][1], &b[0][2], &b[1][0], &b[1][1], &b[1][2], &b[2][0], &b[2][1], &b[2][2]);
}
if(n = 4){
printf("2つの4*4行列の要素(整数)を入力してください\n");
scanf("%d %d %d %d %d %d %d %d %d %d &d &d &d &d &d &d", &a[0][0], &a[0][1], &a[0][2], &a[0][3], &a[1][0], &a[1][1], &a[1][2], &a[1][3], &a[2][0], &a[2][1], &a[2][2], &a[2][3], &a[3][0], &a[3][1], &a[3][2], &a[3][3]);
scanf("%d %d %d %d %d %d %d %d %d %d &d &d &d &d &d &d", &b[0][0], &b[0][1], &b[0][2], &b[0][3], &b[1][0], &b[1][1], &b[1][2], &b[1][3], &b[2][0], &b[2][1], &b[2][2], &b[2][3], &b[3][0], &b[3][1], &b[3][2], &b[3][3]);
}
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
c[i][j] = a[i][n] * b[n][j];
printf("2つの行列の積は\n");
for(i = 0; i < n; i++){
if(n = 3)
printf("| %3d %3d %3d |\n", c[i][0], c[i][1], c[i][2]);
if(n = 4)
printf("| %3d %3d %3d %3d |\n", c[i][0], c[i][1], c[i][2], c[i][3]);
}
}
0235デフォルトの名無しさん
2005/07/21(木) 21:04:47見たところ、配列の宣言でエラーになりそうだが。
0236デフォルトの名無しさん
2005/07/21(木) 21:05:39それでも初期化してないのを配列のサイズにしてるから問題だけど
0237デフォルトの名無しさん
2005/07/21(木) 21:41:01×if(n = 3){
○if(n == 3){
たぶんこれらを訂正すると6行目でエラーがでるんじゃまいか
0238デフォルトの名無しさん
2005/07/21(木) 21:42:25最初見たとき気づかなかったw
0239デフォルトの名無しさん
2005/07/21(木) 21:45:50RunTime の恐怖!
0240デフォルトの名無しさん
2005/07/21(木) 21:47:240241デフォルトの名無しさん
2005/07/21(木) 21:49:57これだけで飯が三杯は食えるね。
まぁ今あがった間違い全部直せば動くよ。というか動いた。
0242デフォルトの名無しさん
2005/07/21(木) 21:56:57main()
{
int n, i, j;
printf("求める平方行列の大きさを入力してください\n");
scanf("%d", &n);
int a[n][n], b[n][n], c[n][n];
if(n == 3){
printf("2つの3*3行列の要素(整数)を入力してください\n");
scanf("%d %d %d %d %d %d %d %d %d",
&a[0][0], &a[0][1], &a[0][2], &a[1][0], &a[1][1], &a[1][2], &a[2][0], &a[2][1], &a[2][2]);
scanf("%d %d %d %d %d %d %d %d %d",
&b[0][0], &b[0][1], &b[0][2], &b[1][0], &b[1][1], &b[1][2], &b[2][0], &b[2][1], &b[2][2]);
}
/*
0243デフォルトの名無しさん
2005/07/21(木) 21:59:24if(n == 4){
printf("2つの4*4行列の要素(整数)を入力してください\n");
scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
&a[0][0], &a[0][1], &a[0][2], &a[0][3], &a[1][0], &a[1][1], &a[1][2], &a[1][3],
&a[2][0], &a[2][1], &a[2][2], &a[2][3], &a[3][0], &a[3][1], &a[3][2], &a[3][3]);
scanf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
&b[0][0], &b[0][1], &b[0][2], &b[0][3], &b[1][0], &b[1][1], &b[1][2], &b[1][3],
&b[2][0], &b[2][1], &b[2][2], &b[2][3], &b[3][0], &b[3][1], &b[3][2], &b[3][3]);
}
/*
0244デフォルトの名無しさん
2005/07/21(木) 22:00:39for(i = 0; i < n; i++)
for(j = 0; j < n; j++){
if(n == 3)
c[i][j] = a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j];
if(n == 4)
c[i][j] = a[i][0] * b[0][j] + a[i][1] * b[1][j] + a[i][2] * b[2][j] + a[i][3] * b[3][j] ;
}
/*
0245デフォルトの名無しさん
2005/07/21(木) 22:01:45printf("2つの行列の積は\n");
for(i = 0; i < n; i++){
if(n == 3)
printf("| %3d %3d %3d |\n", c[i][0], c[i][1], c[i][2]);
if(n == 4)
printf("| %3d %3d %3d %3d |\n", c[i][0], c[i][1], c[i][2], c[i][3]);
}
}
0246デフォルトの名無しさん
2005/07/21(木) 22:04:45こんなひどいソース書いたのは初めて。
一応digital mars cコンパイラでしかテストしてないけどC99なら動くでしょう。たぶん
0247233
2005/07/21(木) 23:32:03散々たる言われようにorz そもそも初期化なんて全然頭に無かったし
俺向いてないのだろうか・・・
0248デフォルトの名無しさん
2005/07/22(金) 00:22:48[2] 問題文(含コード&リンク): 下記のとおり
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5.1
[3.3] 言語:C
[list.dat]
1 2
1 3
1 9
2 3
2 11
.. ..
.. ..
30283 30233
上記のようなファイルを読み込んで配列に格納し、適当な配列を出力し合っていることを確かめなさい
また、並ぶ2つをペアと考え、右側を軸として昇順ソートしなさい
2次元配列でも2つ配列を作るのでもどっちでもいいです
このファイルは301221行あります。登場する数値の最大は30283です。
よろしくお願いします。
0249デフォルトの名無しさん
2005/07/22(金) 00:46:37あってない
0250デフォルトの名無しさん
2005/07/22(金) 00:50:45int setlist(int *ary_in[][2], char *fname)
{
int num=0;//読み込んだレコード数
FILE *fi;//list.datファイルを読み込むファイルポインタ
char buf[BUFSIZE], *p;//文字操作用にいろいろと。
int i, j;
fi=fopen(fname, "r");
while(fgets(buf, BUFSIZE-1, fi) != NULL){
//レコード一個発見
p=buf;
while(*p != ' ')p++;
*p='\0';p++;
ary_in[num][0]=atoi(buf);
ary_in[num][1]=atoi(p);
num++;
}
fclose(fi);
return num;
}
あとだれかよろしこ
0251デフォルトの名無しさん
2005/07/22(金) 02:05:03まだわからん。ある日突然開眼することもある。
0253やめられない名無しさん
2005/07/22(金) 02:38:14まさかタダでやれって言うんじゃないだろうな。
そういう朝鮮人みたいな薄汚い事言うなよ。
0254デフォルトの名無しさん
2005/07/22(金) 02:51:050255デフォルトの名無しさん
2005/07/22(金) 03:25:20/* 標準出力をリダイレクトしてcsvにし、表計算でグラフにすると言う前提で */
#include <stdio.h>
void geneTrigon(double freq, double amp)
{
int ic;
const int res = 100;
for (ic = 0; ic <= res; ++ic) {
if (ic == 0) {
printf("0, 0\n");
} else if (ic <= res / 4) {
printf("%g, %g\n", (double) ic / res / freq, ic * 4.0 / res * amp);
} else if (ic <= res * 3 / 4) {
printf("%g, %g\n", (double) ic / res / freq, ic * -4.0 / res * amp + amp * 2);
} else {
printf("%g, %g\n", (double) ic / res / freq, ic * 4.0 / res * amp - amp * 4);
}
}
}
0256デフォルトの名無しさん
2005/07/22(金) 03:27:30{
int ic;
const int res = 100;
for (ic = 0; ic <= res; ++ic) {
if (ic == 0) {
printf("0, 0\n");
} else if (ic < res / 2) {
printf("%g, %g\n", (double) ic / res / freq, amp);
} else if (ic == res / 2) {
printf("%g, 0\n", 0.5 / freq);
} else if (ic < res) {
printf("%g, %g\n", (double) ic / res / freq, -amp);
} else {
printf("%g, 0\n", 1.0 / freq);
}
}
}
/* 尚、各波形の出力は1周期分とした。 */
/* サンプルメイン */
int main()
{
geneTrigon(1000, 100);
genePulse(800, 80);
return 0;
}
/* そうそう、使い方は見ての通りで */
0257230
2005/07/22(金) 05:59:18ありがとうございます!参考にさせていただきますm(_ _)m
大変申し訳ないのですが、再度質問してもよろしいでしょうか・・・。
周期が3*T/2までの方形波のみのプログラムをつくってみたのですが、
3*T/2以降も方形波にしたい場合はどのようにすればいいのでしょう。
反復処理の方法がいまいちよくわかりません・・・。
#include<stdio.h>
#include<math.h>
main(){
double E=100,e,t,f=1000.0,T=1/f,te=0.02,td=0.000001;
int n,nd=100;
for(t=0.0,n=0;t<=te;t+=td,n++)
{
if((t<T/2)||(T<=t && t<(3*T/2)))
e=E;
else
e=-E;
if((n%nd)==0)
printf("%lf %lf \n",t,e);
}
return 0;
}
どうかよろしくお願いしますm(_ _)m
0258デフォルトの名無しさん
2005/07/22(金) 06:59:220259デフォルトの名無しさん
2005/07/22(金) 07:31:52ありがとうございました。
0260デフォルトの名無しさん
2005/07/22(金) 13:34:310261デフォルトの名無しさん
2005/07/22(金) 13:40:340262デフォルトの名無しさん
2005/07/22(金) 14:25:200263デフォルトの名無しさん
2005/07/22(金) 14:42:44そんなことで怒っても荒れるだけだからでねーの?
俺的にはその点GJと心の中でささやかに言ってやりたい気もする
0264デフォルトの名無しさん
2005/07/22(金) 14:46:37[2] 問題文(含コード&リンク):
読み込んだファイル(標準入力)内の単語の出現回数を数えて出現回の略順にソートして
表示するプログラムを実装せよ。
単語とはisalumn()で真が返る文字の連続とし、大文字と小文字は区別しない。
出現回数が同じ単語は辞書順に表示すること。
出現が-nオプションで指定した回数以上の単語だけを表示する(デフォルトで1回以上)
[3] 環境
[3.1] OS:Linux(Lindows)
[3.2] コンパイラ(バージョン):gcc バージョンは不明です。
[3.3] 言語:C
[4] 期限:2005年7月27日
[5] その他の制限:データ構造は処理時間が最短となるよう1番適切なものを用いる。
→ハッシュと考えています。
よろしくお願いします。
0265デフォルトの名無しさん
2005/07/22(金) 15:20:151.キーボードから整数値を読み込む
2.1から読み込んだ数値までの総和を求めて表示する
3. 1. へ戻る
以上の動作を 5 回繰り返すか、1. でもし 0 が入力されたらプログラムを終了する
お願いします
0266デフォルトの名無しさん
2005/07/22(金) 15:44:260267デフォルトの名無しさん
2005/07/22(金) 15:46:390268デフォルトの名無しさん
2005/07/22(金) 15:54:47俺と似たような宿題だなぁ
0269デフォルトの名無しさん
2005/07/22(金) 15:56:29int main(void)
{
int a,i=0;
do{
printf("Input num:");
scanf("%d",&a);
if(a==0){
return 1;
}
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
i++;
}while(i<5);
return 0;
}
0270265
2005/07/22(金) 16:06:400271デフォルトの名無しさん
2005/07/22(金) 16:43:34int main(void)
{
int a,i=0;
printf("Input num:");
scanf("%d",&a);
if(a==0){
return 1;
}
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
i++;
while(i<5){
printf("Input num:");
scanf("%d",&a);
if(a==0){
return 1;
}
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
i++;
}
return 0;
}
0272デフォルトの名無しさん
2005/07/22(金) 17:00:12#include<stdio.h>
int main(void)
{
int a,i=0;
for(i=0;i<5;i++){
printf("Input num:");
scanf("%d",&a);
if(a==0) return 1;
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
}
return 0;
}
0273デフォルトの名無しさん
2005/07/22(金) 17:08:53int main(void)
{
int a;
printf("Input num:");
scanf("%d",&a);
if(a==0) return 1;
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
printf("Input num:");
scanf("%d",&a);
if(a==0) return 1;
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
printf("Input num:");
scanf("%d",&a);
if(a==0) return 1;
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
printf("Input num:");
scanf("%d",&a);
if(a==0) return 1;
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
printf("Input num:");
scanf("%d",&a);
if(a==0) return 1;
printf("1から%dまでの和は%d\n",a,(1+a)*a/2);
return 0;
}
0274デフォルトの名無しさん
2005/07/22(金) 17:19:49[2] 問題文(含コード&リンク):
巡回セールスマン問題をNearest Addition法で解くプログラムを作成せよ。
Nearest Addition法とは
(1)1つの都市からなる長さ0の部分閉路Tをひとつ作成する
(2)現在の部分閉路Tが全ての都市を含むならば、それが解
(3)そうでないならば、Tに含まれる都市jとTに含まれない都市kの組み合わせで、
jとkの間の距離Cjk(jkはCの右下)を最小にするようなものを求める
(4)(i,j)をTに含まれるパスとするとき、これを2つのパス(i,k)と(k,j)で置き換える
(5)以上の(2)〜(4)を繰り返す
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:7月25日12:00まで
[5] その他の制限:なし
一応Nearest Neighbor法のプログラムがあります。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/775.txt
このプログラムを元に作らなくてもよいので、どなたかお願いいたします。
なるべくコメントもいれてくださると非常に助かります。
0275265
2005/07/22(金) 17:57:330276デフォルトの名無しさん
2005/07/22(金) 18:23:55[2]問題文:一行に「文字列」,「文字列」,「文字列」,「整数」
というふうに4つの属性がそれぞれコンマで区切られたファイルを構造体に読み込み
(ここまでは出来ました)、その2番目の属性に現れる全ての相異なる単語の出現頻度を求め、標準出力に書き出す。
ここで単語は出現した順に並べる。また大文字は小文字に読み替え、区別しない。また単語のうちa,the,by,for,in,on,of,to,withは除外し、カウントしない。
[3]環境 [3.1]OS:Linux [3.2]コンパイラ:gcc [3.3]言語:C
[4]期限 7月26日
[5]その他
2番目の構造体に入れ込まれている単語は例えば The C Programing Language 等です。よろしくお願いします。
0277デフォルトの名無しさん
2005/07/22(金) 20:50:29激しく俺と同じ大学の香具師の悪寒
0278デフォルトの名無しさん
2005/07/22(金) 22:38:18ではお前さんが教えて差し上げてください
0279デフォルトの名無しさん
2005/07/22(金) 22:54:19俺も出来てない(ノ∀`)
0280デフォルトの名無しさん
2005/07/22(金) 22:58:33レポートとか出るんだな
0281デフォルトの名無しさん
2005/07/22(金) 23:03:470282デフォルトの名無しさん
2005/07/22(金) 23:04:46ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/776.txt
0283デフォルトの名無しさん
2005/07/22(金) 23:21:44他の科目の勉強もあるのに
0284デフォルトの名無しさん
2005/07/22(金) 23:49:46[2] 問題文(含コード&リンク):
タイピングプログラムを作る。
プログラムの流れは、英単語1行1個ずつ10個入ったファイルを作り、
1.テキストファイル名を入れる
2.テキストファイルの1行目が表示される
3.タイピングをする(ミスをするともう1回タイピングさせる)
4.1行目が終わると、2行目が表示され、またタイピングをする
5.10問おわったら、かかった時間とミスした回数が出力される
[3] 環境
[3.1] OS:Windows 2000
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5
[3.3] 言語:C
[4] 期限:2005年07月26日17:00まで
お願いしますm(__)m
0285デフォルトの名無しさん
2005/07/22(金) 23:54:30気持ちは分かるが、実技試験のが困るだろ?
0286デフォルトの名無しさん
2005/07/22(金) 23:56:110287デフォルトの名無しさん
2005/07/22(金) 23:56:38[2] 問題文(含コード&リンク):組み合わせの式nCrにおいて、
n=50、r=0〜50までの値を求めよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):わかりません。
[3.3] 言語:C++
[4] 期限:2005年7月23日18時まで
[5] その他の制限:if文、while文等は授業で教わりました。
みなさん、どうか宜しくお願いします。
0288デフォルトの名無しさん
2005/07/23(土) 00:01:56その場で「これ作れ」って言われるのか?
0289デフォルトの名無しさん
2005/07/23(土) 00:04:5030〜40分で組まなければいけないらしい
0290デフォルトの名無しさん
2005/07/23(土) 00:11:20#include <cstdio>
int main()
{
static double ncr50[] = {1., 50., 1225., 19600., 230300.,
2118760., 15890700., 99884400., 536878650., 2505433700.,
10272278170., 37353738800., 121399651100., 354860518600., 937845656300.,
2250829575120., 4923689695575., 9847379391150., 18053528883775., 30405943383200.,
47129212243960., 67327446062800., 88749815264600., 108043253365600., 121548660036300.,
126410606437752.,
};
for (int r = 0; r <= 50; ++r) {
printf("50C%d = %.20g\n", r, r <= 25 ? ncr50[r] : ncr50[50 - r]);
}
return 0;
}
0291デフォルトの名無しさん
2005/07/23(土) 00:18:52#include <stdio.h>
#include <string.h>
#include <time.h>
int main(){
FILE *fp;
int i, len, miss;
time_t start, end;
char buf[1024], in[1024];
printf(" file name > ");
if(NULL == fgets(buf, sizeof(buf), stdin)) return 1;
if(buf[len = strlen(buf)-1] == '\n') buf[len] = '\0';
if(NULL == (fp = fopen(buf, "r"))) return 2;
printf("###### start ######\n");
time(&start);
i = 1; miss = 0;
while(fgets(buf, sizeof(buf), fp))
{
while(1)
{
printf("第 %d 問 : %s", i, buf);
fgets(in, sizeof(in), stdin);
if( 0 == strcmp(buf, in)) {++i; break;}
else{ puts(">>>MISS<<<"); ++miss;}
}
}
time(&end);
printf("###### finish ######\n");
fclose(fp);
printf("所要時間 %lu 秒 , MISS %d 回\n", end - start, miss);
return 0;
}
0292291
2005/07/23(土) 00:19:35semapho
schedule
environmental
otorhinolaryngological
psychoneuroendocrinological
floccinaucinihilipilification
supercalifragilisticexpialidocious
pseudoantidisestablishmentarianism
Asseocarnisanguineoviscericartilaginonervomedullary
Aopadotenachoselachogaleokranioleipsanodrimhipotrimmatosilphioparaomelitokatakechymenokichlepikossyphophattoperisteralektryonoptekephalliokigklopeleiolagoiosiraiobaphetraganopterygon
0294デフォルトの名無しさん
2005/07/23(土) 00:33:17そこのコンパイラによる。
0295デフォルトの名無しさん
2005/07/23(土) 00:44:07たしかTurb C++だったと思います・・。
0296デフォルトの名無しさん
2005/07/23(土) 00:45:29[2] 問題文:文字型配列 str1[10] str2[10]を宣言し、これに好きな
文字列をキーボードから入力し、それぞれの文字を順
に1文字ずつ交互に取り出し出力しなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Microsoft Visual C++ .NET
[3.3] 言語:C++
[4] 期限:7月26日
[5] まだ基本的な事しか習ってないです。
よろしくお願いします
0297デフォルトの名無しさん
2005/07/23(土) 00:46:10ありがとうございました!!m(__)m
0298デフォルトの名無しさん
2005/07/23(土) 00:49:56試しに動かしてみてくれ。ダメかも知れんが。
#include <iostream>
typedef long long int64;
int64 binomial(int64 n, int64 r) {
return n == r || r == 0 ? 1 : n * binomial(n - 1, r - 1) / r;
}
int main() {
for (int i = 0; i <= 50; ++i)
std::cout << "binomial(50," << i << ")=" << binomial(50, i) << std::endl;
return 0;
}
0299276
2005/07/23(土) 01:02:36相異なる単語の出現頻度を求めてそれを出現した順に標準出力に書き出す。
大文字と小文字は区別しない。a,the,by,for,in,on,of,to,withは除外する。
ってだけで良かったです。これでよろしくお願いします。
0300デフォルトの名無しさん
2005/07/23(土) 02:36:19[2] ------------- 合計
A | 5 5 5 5 5 25
B | 3 4 3 2 3 15 B=A-C
C | 2 1 2 3 2 10
------------------
数値はそれぞれtextBoxに入っています。
以上の表をボタンを押すことにより以下のように表示させます。
------------- 合計
A | 5 5 5 5 5 25
B | 0 0 5 5 5 15 B=A-C [ボタン]
C | 5 5 0 0 0 10
------------------
Aの数値に合計を最初から割り当てていくプログラムです。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):Microsoft Visual C.NET
[3.3] 言語:C
[4] 期限:2005年07月25日まで[5] 開発言語はC#なのですが、プログラムが
理解できればC#に変換できると
思いますので、Cでお願いします。
0301デフォルトの名無しさん
2005/07/23(土) 02:49:01CとWin32APIでってこと?
0302300
2005/07/23(土) 02:55:410303デフォルトの名無しさん
2005/07/23(土) 03:17:35嫌です。
0304デフォルトの名無しさん
2005/07/23(土) 04:13:530305デフォルトの名無しさん
2005/07/23(土) 05:55:58[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/777.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):VC++6.0
[3.3] 言語:C言語
[4] 期限:7月25日
[5] その他の制限:無し
もしよろしければお力添えしていただきたいです。
0306デフォルトの名無しさん
2005/07/23(土) 06:42:50ヒープソートを用いて、配列に入った20個のデータを昇順に並び替えるプログラムを作成したいのですが、うまくソートされません。
昇順にソートするどころか、てんでんバラバラに並べられてしまいます。
お力添えいただけたら嬉しいです。
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
問題のソース
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/778.txt
[3] 環境
[3.1] OS:Windows + cygwin
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年9月01日8:50まで
[5] その他の制限:cursesライブラリを使用する。コンパイル時、オプションに-lcurses必須。
0307デフォルトの名無しさん
2005/07/23(土) 08:10:37とりあえず動いたから揚げてみる
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/779.c
0308デフォルトの名無しさん
2005/07/23(土) 11:07:08俺は構造体からの単語読み込みが出来ずに悩んでるのに
お前は出来てるのかー!
0310凡人
2005/07/23(土) 18:18:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/781.txt
なんか俺にもこんなころがあったなぁと凄く同情して細かく書いてみた。
分かりやすさのために長いソースになっているが、
細かくメモを入れておいたので、頑張って理解してほしい。
0311デフォルトの名無しさん
2005/07/23(土) 18:25:10ならfgetsなんてやめてやれよw
0312310
2005/07/23(土) 18:30:310313デフォルトの名無しさん
2005/07/23(土) 18:55:35#include <iostream>
#include <algorithm>
#include <iterator>
#include <string>
#include <cstdio>
using namespace std;
struct fusion
{ string operator()(char lhs, char rhs) { return string(1, lhs) + rhs;}};
int main(int argc, char ** argv)
{
char str1[10] = {'\0'}, str2[10] = {'\0'};
scanf("%9s", str1), scanf("%*[^ \t\n]"), scanf("%9s", str2);
transform(str1, str1 + 10, str2, ostream_iterator<string>(cout), fusion());
cout << endl;
}
0314デフォルトの名無しさん
2005/07/23(土) 20:07:18イタタタ
0315デフォルトの名無しさん
2005/07/23(土) 20:50:38数学→66点
理科→91点
社会→76点
英語→80点
B君 国語→66点
数学→59点
理科→68点
社会→59点
英語→79点
C君 国語→33点
数学→40点
理科→48点
社会→60点
英語→50点
それぞれの点数を配列化し、構造体として表し、3人の平均点を計算して、さらに5教科の合計点が380点以上のものを合格とするプログラムを作っていただけないでしょうか?
0316デフォルトの名無しさん
2005/07/23(土) 20:56:300317デフォルトの名無しさん
2005/07/23(土) 20:59:410318315
2005/07/23(土) 20:59:47マルチまでしてやってんだからYO〜
0319デフォルトの名無しさん
2005/07/23(土) 21:02:080320デフォルトの名無しさん
2005/07/23(土) 21:03:030321デフォルトの名無しさん
2005/07/23(土) 21:05:480322デフォルトの名無しさん
2005/07/23(土) 21:06:37詳細はコメントしてあります。
よろしくお願いします(入力データファイル同梱のためzip)
[1] 授業単元:プロ演
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/782.zip
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):BCC(5.5.1)
[3.3] 言語:C言語
[4] 期限:7月25日
0323デフォルトの名無しさん
2005/07/23(土) 21:17:15[2]問題文
A君 国語→83点
数学→66点
理科→91点
社会→76点
英語→80点
B君 国語→66点
数学→59点
理科→68点
社会→59点
英語→79点
C君 国語→33点
数学→40点
理科→48点
社会→60点
英語→50点
それぞれの点数を配列化し、構造体として表し、3人の平均点を計算するプログラムを作れ。
また、5教科の合計点が380点以上のものを合格とする。
[3]環境
[3.1]OS:Windows
[3.2]コンパイラ:
[3.3]言語:C/C++
[4]期限:7月24日
0324デフォルトの名無しさん
2005/07/23(土) 21:18:04何度書かれても不快さを増やすだけだぞ
0325デフォルトの名無しさん
2005/07/23(土) 21:21:35向こうで答えてもらってるじゃないか
氏ね
0326デフォルトの名無しさん
2005/07/23(土) 21:30:29ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_crt_strtok.2c_.wcstok.2c_._mbstok.asp
0327デフォルトの名無しさん
2005/07/23(土) 21:33:20[2] 問題文:自然数nを引数として、再起関係を利用してその8進表示を行う関数
void oct(int n)
を書け。関数のみでかまわない。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ:gcc
[3.3] 言語:C
[4] 期限:07月23日24:00まで
お願いします
0328デフォルトの名無しさん
2005/07/23(土) 21:41:21{
if (n < 0)
return;
if (n < 8) {
printf("%d", n);
return;
}
oct(n / 8);
printf("%d", n % 8);
}
0329デフォルトの名無しさん
2005/07/23(土) 21:43:000330デフォルトの名無しさん
2005/07/23(土) 21:51:010331デフォルトの名無しさん
2005/07/23(土) 21:52:15よくわかりません・・・
次の構造体のデータにうつる時 おかしくなってるような
0332デフォルトの名無しさん
2005/07/23(土) 21:53:28void oct(int n)
{
char buf[32];
int i, nega = 0;
if( n == 0 ) putchar('0');
else
{
if( n < 0 ) {putchar('-'); n*=-1;}
for(i=0; n && i<sizeof(buf);++i, n/=8) buf[i] = (n % 8) + '0';
if(nega) putchar('-');
for(--i; i >=0; --i) putchar(buf[i]);
}
}
0333332
2005/07/23(土) 21:53:580334デフォルトの名無しさん
2005/07/23(土) 22:02:34#include <string>
using namespace std;
class Grades {
string name_; int japanese_; int math_; int science_; int social_; int english_;
public:
Grades(const string& name, int japanese, int math, int science, int social, int english) :
name_(name), japanese_(japanese), math_(math), science_(science), social_(social), english_(english)
{}
const string& GetName() const
{ return name_; }
int CalcAverage() const
{ return (japanese_ + math_ + science_ + social_ + english_) / 5; }
};
void EstimateGrades(const Grades& grades)
{
if (380 <= grades.CalcAverage())
cout << grades.GetName() + "は合格です。" << endl;
else
cout << grades.GetName() + "は不合格です。" << endl;
}
int main()
{
Grades a("A君", 83, 66, 91, 76, 80);
Grades b("B君", 66, 59, 68, 59, 79);
Grades c("C君", 33, 40, 48, 60, 50);
EstimateGrades(a);
EstimateGrades(b);
EstimateGrades(c);
return 0;
}
0336デフォルトの名無しさん
2005/07/23(土) 22:15:430337デフォルトの名無しさん
2005/07/23(土) 22:19:43#include <stdio.h>
void oct(int n) {
if (n == 0) return;
oct(n / 8);
putchar(n % 8 + '0');
}
0338デフォルトの名無しさん
2005/07/23(土) 22:25:42void oct(int n) {
if(n < 0) {putchar('-'); n*=-1;}
if(n == 0) return;
else
{
oct(n / 8);
putchar(n % 8 + '0');
}
}
0339デフォルトの名無しさん
2005/07/23(土) 22:26:49自然数に負の数のときの処理は要らんわな。
0341デフォルトの名無しさん
2005/07/23(土) 22:41:580342デフォルトの名無しさん
2005/07/23(土) 23:21:37質問は受け付けません。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 10
int main()
{
char *skip[] = {"a","the","by","for","in","on","of","to","with"};
char p[N][64] = {"this","is","a","pen","I","am","a","student","this","the"};
struct X { char *s;int cnt;} x[N];
int i, j, k, xend = 0;
for( i = 0; i < N; ++i)
{
for(k = 0; k < strlen(p[i]); ++k) p[i][k] = tolower(p[i][k]);
for(k = 0; k < sizeof(skip)/sizeof(*skip); ++k) if(0==strcmp(p[i],skip[k])) break;
if(k != sizeof(skip)/sizeof(*skip)) continue;
for(j = 0; j < xend; ++j)
if( 0 == strcmp(p[i], x[j].s) ) break;
if( j == xend ) {x[xend].s = p[i];x[xend].cnt = 1; ++xend;}
else ++x[j].cnt;
}
for(i = 0; i < xend; ++i)
printf("%s(%d), ", x[i].s, x[i].cnt);
return 0;
}
0343help me
2005/07/24(日) 07:00:33という課題なんですが…誰かお願いします。単位かかってますがサッパリです(汗)
0344help me
2005/07/24(日) 07:05:22[1] 授業単元: 課題
[2] 問題文(含コード&リンク):4次のルンゲ・クッタ法のアルゴリズムに基づき、一般的な問題に適応できるプログラムを作成しなさい
[3] 環境 :自由
[3.1] OS:自由
[3.2] コンパイラ(バージョン): 自由
[3.3] 言語:どちらでも可
[4] 期限:7月25日(月)10時まで
[5] その他の制限:特になし。
実行した環境(OS、言語)も教えていただけると助かります。
よろしくお願いいたします。
0345デフォルトの名無しさん
2005/07/24(日) 07:29:08ttp://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/num/Runge/C++/Runge.txt
てか・・・単位かかってるならぱぱっとしらべりゃいーんじゃない?
0346デフォルトの名無しさん
2005/07/24(日) 11:26:42[2] 問題文:
n次元のベクトルを配列a[],b[]として取り扱うものとする。配列a[],b[]および正整数nを引数として
受け取り、内積(実数値)を返り値とする関数InnerProduct()を作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/25まで
[5] その他の制限:関数の取り扱いまで習いました。基本型などはまだ習っていません。
どなたかご教授お願いします。
0347デフォルトの名無しさん
2005/07/24(日) 11:28:17>>198
どうもありがとうございます。助かりました。
返事が遅くなって申し訳ないです。
0348デフォルトの名無しさん
2005/07/24(日) 11:28:3586〜88行目の
for(i=0;i<total;i++){
printf("%s %s %s %d\n",sample[i].author,sample[i].title,sample[i].publish,sample[i].year);
}
というのは確認のためにかいただけですので、実際には必要ありません。
どうかよろしくお願いします。
0349デフォルトの名無しさん
2005/07/24(日) 11:56:04もし君の言う「基本型」がintやdoubleなどのことを指しているのならば、
その宿題はできない。
double InnerProduct(double a[], double b[], unsigned int n) {
double ret = 0.;
while (n--) ret += a[n] * b[n];
return ret;
}
0350デフォルトの名無しさん
2005/07/24(日) 12:00:11一般的って言うのは、n階でも可能とか、連立も可能とか、そういうこと?
0351デフォルトの名無しさん
2005/07/24(日) 12:06:10すいません、基本型ってのはcharやlong、float、shortなどのことです。
doubleやintなど基本的なのは習っています。
0352デフォルトの名無しさん
2005/07/24(日) 12:06:17その牛は自らをクイーン・オブ・モウモウと名乗り、仲間の牛にも知能を与え
世界を混乱に貶めた。
人間を奴隷とした牛軍団は先ず、先祖代々の恨みをはらすべく、
女性に成長ホルモンを投与して、乳を肥大化させ、そこから出る母乳を
人乳として搾乳機を使い搾り出すことを始めた。
0353デフォルトの名無しさん
2005/07/24(日) 12:07:50[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/784.txt
data,add or del > ,Aは
data,add or del > 7,A
です
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年7月27日12:00まで
[5] 構造体は一通り習いました
よろしくお願いします
0354デフォルトの名無しさん
2005/07/24(日) 12:08:1720XX年、とある研究所で飼育されていたメスの牛が突如超能力をを持った。
その牛は自らをクイーン・オブ・モウモウと名乗り、仲間の牛にも知能を与え
世界を混乱に貶めた。
人間を奴隷とした牛軍団は先ず、先祖代々の恨みをはらすべく、
女性に成長ホルモンを投与して、乳を肥大化させ、そこから出る母乳を
人乳として搾乳機を使い搾り出すことを始めた。
0355デフォルトの名無しさん
2005/07/24(日) 12:50:09基礎がなってない気もしなくもないのですが…ご教授くださいm(__)m
[1] 授業単元:C言語演習II
[2] 問題文(含コード&リンク):
複素数の実数部と虚数部をメンバとして構造体を作成し、2つの複素数の
和・差・積・商を求めるプログラムを作成しなさい。
但し、2つの複素数はキーボード入力とし、かつその直後に「+」「-」「*」「/」を
入力することにより、入力した算術演算子の演算を表示するようにすること。
↓ここまで作りました。現在、最後の+,-,*,/で入力するとすべて"Bad choice!!"になります。
ちなみにあまりに長く、エラーで書き込めなかったのでUPローだでUPしておきました。
http://free.gikoneko.net/up/source/up17037.txt
[3] 環境
[3.1] OS:Linux Fedora Core4 (Red hat 6.2以上であれば問題ないです。)
[3.2] コンパイラ(バージョン): cc
[3.3] 言語:C言語
[4] 期限:2005年7月25日
[5] その他の制限:習っているのはifなどの分岐はもちろん、配列、ポインタ、構造体
などある程度はいけます。
ifをうまく認識させるようにするにはどうすればよいでしょうか?
教えてください、よろしくお願いします。
0356デフォルトの名無しさん
2005/07/24(日) 13:03:05fflush(stdin)で改行コードを捨ててしまうべし。
(ソースはほとんど見てないけど)
0357デフォルトの名無しさん
2005/07/24(日) 13:04:32同社は来年にも車やオートバイに応用したいとコメントしている。
今回の発明はノーベル賞候補にも挙げられるなど期待がされている。
既に他社からの技術提供依頼が殺到しているという。
H社はアメリカのソフトウェアメーカーと提携する構えを見せており、
背景には燃料に使うバグが大量にあるという事実があると考えられる。
>>354
void dellist(struct LIST **ptr, int deldata)
{
struct LIST *p, *prevp;
for (p = prevp = *ptr; p != NULL; p = p->nextptr) {
if (p->data == deldata) {
prevp->nextptr = p->nextptr;
if (p == prevp) {
printf("!");
*ptr = p->nextptr;
}
free(p);
return;
}
prevp = p;
}
}
>>356
fflush(stdin)激しく規格外。
0358デフォルトの名無しさん
2005/07/24(日) 13:04:340359デフォルトの名無しさん
2005/07/24(日) 13:09:05switchを使っていることやspecifierが%+lfとなっていることや「実部・虚部」が
「real part・imaginary part」となっていること等は君が聞かんとするところでは
ないではない。
#include<stdio.h>
struct comp_num {
double re;
double im;
};
int main(void) {
char s[2];
struct comp_num a, b;
printf("Input real part of a:"); scanf("%lf", &a.re);
printf("Input imaginary part of a:"); scanf("%lf", &a.im);
printf("Input real part of b:"); scanf("%lf", &b.re);
printf("Input imaginary part of b:"); scanf("%lf", &b.im);
printf("a=%lf%+lfi\nb=%lf%+lfi\n", a.re, a.im, b.re, b.im);
printf("operator list:[+][-][*][/]\nChoose operator:"); scanf("%1s", s);
switch(s[0]) {
case '+':
printf("Addition... \n%lf%+lfi\n", a.re + b.re, a.im + b.im); break;
case '-':
printf("Subtraction... \n%lf%+lfi\n", a.re - b.re, a.im - b.im); break;
case '*':
printf("Multiplication... \n%lf%+lfi\n", a.re * b.re - a.im * b.im, a.im * b.re - a.re * b.im); break;
case '/':
printf("Divide... \n%lf%+lfi\n", (a.re * b.re + a.im * b.im) / (b.re * b.re + b.im * b.im), (a.im * b.re - a.re * b.im) / (b.re * b.re + b.im * b.im)); break;
default:
printf("Bad choice!! \n");
}
}
0361デフォルトの名無しさん
2005/07/24(日) 13:16:080362デフォルトの名無しさん
2005/07/24(日) 13:20:33ISO/IEC 9899:1999 Foreword 5
― %lf conversion specifier allowed in printf
0363355
2005/07/24(日) 13:22:06英単語、しっかり確認しておきます・・・
0364デフォルトの名無しさん
2005/07/24(日) 13:22:430365デフォルトの名無しさん
2005/07/24(日) 13:23:31つまり、直感的ではなかったと。
0366デフォルトの名無しさん
2005/07/24(日) 13:29:10printfのspecifierの方が型に忠実でなかったということだと思う。
C++で型にうるさくなったのの影響もあるだろうし、そもそもscanfと
食い違っていた事だし。
0367デフォルトの名無しさん
2005/07/24(日) 13:29:300368デフォルトの名無しさん
2005/07/24(日) 13:30:17[2] 問題文(含コード&リンク):
ファイルに書いてある数式を読み込んで計算するプログラム
を教えてください。
fscanfとかfgetsを使いたいのですが、どうやるのでしょうか?
数式は10%(3+2)のようなものです。
[3] 環境
[3.1] OS:winxp
[3.2] コンパイラ(バージョン): borland
[3.3] 言語:c++
[4] 期限:2005/7/26
[5] その他の制限:#include<stdio.h>で使えるものまで。
レベルは初心者です。
0369デフォルトの名無しさん
2005/07/24(日) 13:32:24式を解釈するプログラムを自分で書かなければなりません。
C言語には式を解釈して計算する機能は含まれません。
0370デフォルトの名無しさん
2005/07/24(日) 13:32:30ぐーぐる脳になれ。
fscanf 使い方
とかで探してみた?
0371デフォルトの名無しさん
2005/07/24(日) 13:32:47まだまだ現役ですよ! 新しいもんにはまだまだ負けませんよ ハッハッハ
0372デフォルトの名無しさん
2005/07/24(日) 13:33:36printf()とscanf()では指示子の仕様が大きく違うにもかかわらず、
さも同じと言うような入門書の氾濫が混乱を招いた原因ジャマイカ?
できうるのなら、scanf()でもprintf()の%*.*sみたいなことがしたいぞ。
0373デフォルトの名無しさん
2005/07/24(日) 13:38:22授業単元C++なのにstdio.hっておかしくないか?
本当にC++なの? Cじゃないのか?
0374デフォルトの名無しさん
2005/07/24(日) 13:41:55配列操作を文字列(char [])でやらせたりしたい・・・とか考えると不自然ではないところが悲しい。
0375デフォルトの名無しさん
2005/07/24(日) 13:50:14void dellist( struct LIST **ptr, int deldata )
{
if( *ptr== NULL || (*ptr)->data > deldata ){
return;
}
else if ( (*ptr)->data == deldata ){
struct LIST *curcell;
curcell = *ptr;
*ptr = (*ptr)->nextptr;
free(curcell);
}
else{
dellist( &(*ptr)->nextptr, deldata );
}
}
0377デフォルトの名無しさん
2005/07/24(日) 14:12:52//とかはいいだろうけど。
永遠に出なかったりしてな(有得るが)。
0378デフォルトの名無しさん
2005/07/24(日) 14:20:54[2] 問題文(含コード&リンク): シンプレックス法のプログラミングで目的関数を最大にする端点を見つける方法を考え、プログラム化せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):自由
[3.3] 言語:どちらでも可
[4] 期限:2005年7月25日9時まで
[5] その他の制限:なるべく僕(バカです)が理解できるようにあまり難しいのが入ってないやつが好ましいです。
お忙しいところ申し訳ないですがお願いしますm(_ _)m
0380デフォルトの名無しさん
2005/07/24(日) 14:28:270381デフォルトの名無しさん
2005/07/24(日) 14:40:06http://www9.plala.or.jp/sgwr-t/lib/fflush.html
0382デフォルトの名無しさん
2005/07/24(日) 14:57:34[2] 問題文(含コード&リンク): 2つあります
・ABCDEの5つの並べ方120通りに対し、辞書順の並べ方したときの
x番目は何か?また、例えばABCED(任意)は何番目か?
・任意の自然数nの階乗を渦巻状に表示せよ
987
216
345
見たいな感じです
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年7月25日11時まで
結構ちんぷんかんぷんです。よろしくお願いします
0383デフォルトの名無しさん
2005/07/24(日) 15:05:52階乗?
0384デフォルトの名無しさん
2005/07/24(日) 15:10:53main()の中でexpr()に渡してるFILE*を変えればファイルに書かれた式も評価できるはず。
雑だけど、参考までに。
#include <stdio.h>
int error_code; double expr(FILE *fp); double term(FILE *fp); double fact(FILE *fp);
double expr(FILE *fp) {
double ret = term(fp); int ope;
while ((ope = fgetc(fp)) == '+' || ope == '-') if (ope == '+') ret += term(fp); else ret -= term(fp);
ungetc(ope, fp);
return ret;
}
double term(FILE *fp) {
double ret = fact(fp), temp; int ope;
while ((ope = fgetc(fp)) == '*'|| ope == '/' || ope == '%') if (ope == '*') ret *= term(fp); else if ((temp = term(fp)) != 0.) if (ope == '/') ret /= temp; else ret = (int)ret % (int)temp; else ret = error_code = 1;
ungetc(ope, fp);
return ret;
}
double fact(FILE *fp) {
double d; int parenthesis;
if (fscanf(fp, "%lf", &d) == 1) return d;
else if ((parenthesis = fgetc(fp)) =='(') {
d = expr(fp);
if ((parenthesis = fgetc(fp)) != ')') return error_code = 2; else return d;
}
else return error_code = 3;
}
int main(void) {
double d; error_code = 0; d = expr(stdin);
if (!error_code) printf("result:%lf", d);
else printf("error code:%d", error_code);
}
0386デフォルトの名無しさん
2005/07/24(日) 15:28:062乗ね
0388デフォルトの名無しさん
2005/07/24(日) 18:09:16仕事じゃないのにそーゆーのはやりたくない。
できれば丸投げしてください。
それから、単位がどーとか。初心者ですとかゆーのも勘弁してください。
0389デフォルトの名無しさん
2005/07/24(日) 18:27:54#ifndef _GameObject_
#define _GameObject_
#include "GameObject.h"
#endif
このように書いたんだけどいいかな?
0390デフォルトの名無しさん
2005/07/24(日) 18:31:12下線で始まる識別子は処理系予約。
0391389
2005/07/24(日) 18:49:20そういえばそうでしたね
__(アンダーバー2つ)も予約されてましたね
全部大文字にすればいいのかな
あとは
#define _GameObject_
と
#include "GameObject.h"
のどっちを先にすればいいかも教えてほしいです
0392デフォルトの名無しさん
2005/07/24(日) 18:52:39他の名前と被らなきゃ何でもいい。小文字は使わないことが多いと思う。
#define GAME_OBJECT_H
#define GAME_OBJECT_H_INCLUDED
#define PROJECT_NAME_GAME_OBJECT_H_INCLUDED
#define PROJECT_NAME_GAME_OBJECT_H_YOUR_NAME_2005072401
>#define _GameObject_
>と
>#include "GameObject.h"
>のどっちを先にすればいいかも教えてほしいです。
主流派にこだわるなら、インクルードガードはヘッダの中に書くべき。
/* GameObject.h*/
#ifnef GAME_OBJECT_H
#define GAME_OBJECT_H
中身。
#endif
0393デフォルトの名無しさん
2005/07/24(日) 18:52:48グローバルな名前は下線1つでも予約されている。
0394デフォルトの名無しさん
2005/07/24(日) 19:34:092番。前作った奴の焼き直し。コピペすれば動くはず。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int* pos(int* data, int x, int y, int width) {return data + (width + 1) * y + x;}
int main(void) {
int size, x = 0, y = 0, i, j, *matrix, counter, digit;
scanf("%d", &size);
counter = size * size; digit = (int)log10(size) + 2.5;
matrix = (int*)malloc(sizeof(int) * (size + 1) * size);
memset(matrix, -1, sizeof(int) * (size + 1) * size);
*pos(matrix, x, y, size) = counter;
for(; ; ) {
while (++x < size && *pos(matrix, x, y, size) == -1) *pos(matrix, x, y, size) = --counter;
*pos(matrix, --x, y, size) = counter; if (*pos(matrix, x, y + 1, size) != -1) break;
while (++y < size && *pos(matrix, x, y, size) == -1) *pos(matrix, x, y, size) = --counter;
*pos(matrix, x, --y, size) = counter; if (*pos(matrix, x - 1, y, size) != -1) break;
while (--x >= 0 && *pos(matrix, x, y, size) == -1) *pos(matrix, x, y, size) = --counter;
*pos(matrix, ++x, y, size) = counter; if (*pos(matrix, x, y - 1, size) != -1) break;
while (--y >= 0 && *pos(matrix, x, y, size) == -1) *pos(matrix, x, y, size) = --counter;
*pos(matrix, x, ++y, size) = counter; if (*pos(matrix, x + 1, y, size) != -1) break;
}
for (i = 0; i < size; i++) {
for (j = 0; j < size; j++) printf("%*d", digit, *pos(matrix, j, i, size));
printf("\n");
}
free(matrix);
return 0;
}
0395389
2005/07/24(日) 19:40:50なんてこったい、そんな方法があったなんて!
前に読んだ本には389のような方法しか書かれてなかったぞ
やはり世界は広く学ぶことは多いな
0396デフォルトの名無しさん
2005/07/24(日) 19:44:08むしろインクルードガードはヘッダに書くほうが常套手段。
0398284
2005/07/24(日) 21:33:57調べてみたのですが、どこが間違っているのかわかりません。。。
お願いしますm(__)m
0399デフォルトの名無しさん
2005/07/24(日) 21:40:52http://pc8.2ch.net/test/read.cgi/prog/1113612602/l50
↑のスレの( ・∀・)が作ったやつだからなw
0400デフォルトの名無しさん
2005/07/24(日) 22:11:25あんまり授業が理解できなかったので、ぜひ助けてください・・・。
[1] 授業単元:C言語基礎(最終課題)
[2] 問題文:
自由課題
なんか今までのものを使って、自由にプログラムを作れって言われたので、適当に考えました。
とある町の少年野球チームの名前を決めるプログラムです。
人数(二桁)を入力すると、以下のA群単語とB群単語がランダムに選ばれ、チーム名が決まるというプログラムです。
A群
頑張れ!、戦え!、逃げるな!、すごいぞ!、やばい!、努力だ!
B群
バスターズ、ランディーズ、ファイターズ、ジムニーズ、ラバーズ、ニョッキズ
すごい適当なんですが、ちょっと面白いなと思って・・・。関数をつかうのでしょうか・・・?
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5.1
[3.3] 言語:C
[4] 期限:2005年7月25日18時まで
[5] その他の制限:
基礎なので、あんまり高度なものは使ってないです。
明日の授業までというぎりぎりなんですが、どなたかお願いします・・・。単位が欲しい・・・。
0401デフォルトの名無しさん
2005/07/24(日) 22:14:05センセイ!バッファオーバーフローします!
---以下、英単語ファイルのある1行。ただし2chの制限により適時改行---
acetylseryltyrosylserylisoleucylthreonylserylprolylserylglutaminylphenyl
alanylvalylphenylalnelleucylserylserylvalyotriptophylalanylaspartylprolyl
isoleucylglutamylleucyllencyllasparaginylvalylcysteinythreonylserylseryl
leucylglycllasparatinylglutaminylphenylalanylglutaminylthreonylglutaminyl
glutaninylalanylarginylthrseonylthreonylglutaminylvalylglutaminyglutaninyl
phenylalanylserylghlutaminylvalyltryptophyllysylrolylphenylalaylprolyglutaminyl
serylthreonylvalylarginylphunylalanylprolylglycylaspartylvalyltyrosyllsvslvalyl
tyrosylargiyltyosvlasparaginylalanylvalylleusylaspartylprolylleucylisoleucyl
threonylalnylleucylleucylglycyltreonylphnylalanylaspartylthreonylarginl
asparaginylarginylisoleucylislleucylglutammylvalylglutamylasparaginylglutaminyl
glutaminylsurylprolylthreonylthreonylalanyoglutamylthreonylleucylaspartyl
alanylthreonylarginylarginylvalylaspartylaspartylalanylthreonylvalylalanyl
isoleucylarginylserylalanylasparaginylisoleucylasparaginylleucylvallasparaginyl
glutamylleucylvalylarginylglycylthreonylglycylleucyltyrosylasparaginylglutaminyl
asparaginylthreonylphenylalanylglutamylserylmethionylserylglycylleucylvalyl
tryptophylthreonylserylalanylprolylalanylserine
0402デフォルトの名無しさん
2005/07/24(日) 22:23:16激しくつまらん。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int num;
const char A[6][16] = {"頑張れ!", "戦え!", "逃げるな!", "すごいぞ!", "やばい!", "努力だ!"}, B[6][16] = {"バスターズ", "ランディーズ", "ファイターズ", "ジムニーズ", "ラバーズ", "ニョッキズ"};
printf("チームの人数は?:"); scanf("%d", &num);
srand(num);
printf("よし!チームの名前は『%s%s』に決定!", A[rand() % 6], B[rand() % 6]);
return 0;
}
0403デフォルトの名無しさん
2005/07/24(日) 23:49:40B軍追加 "パイレーツ" "バットマン"
他にもあるとは思うが。
0404デフォルトの名無しさん
2005/07/25(月) 00:17:230405デフォルトの名無しさん
2005/07/25(月) 00:23:40線形計画法ってやつがそうなんでしょうか?さっぱりわからないもので…。
0406デフォルトの名無しさん
2005/07/25(月) 00:31:04[2] 問題文(含コード&リンク): Hit&Blow
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): borland
[3.3] 言語:C
[4] 期限:2005年07月25日16:00まで
[5] その他の制限: Hit&Blowを作ってます。大体できたんですが、何桁かを入力させて答えを作るというところができません。
できたらmallocを使ってやって欲しいです。
よろしくお願いします。
0407デフォルトの名無しさん
2005/07/25(月) 01:00:34>>97 食傷気味なんでパス。検索すりゃでてくるんじゃねぇか?
(ちらっと見たが・・・そのソースをそのまま使うのは俺は嫌だ)
>>406 組み込みの整数は扱える桁が決まってるんで、よほどでかい桁を扱うのでなければ、mallocは必要ないと思うが。
ttp://www.harukitchen.com/program/hit.c
0408109
2005/07/25(月) 01:01:17出来れば月曜までにお願いしたいのですが
ほんとうにおねがいします
0409デフォルトの名無しさん
2005/07/25(月) 01:04:29バカなこと書いて反感買いたいのか?
0410デフォルトの名無しさん
2005/07/25(月) 01:06:10その口調がねw
0411デフォルトの名無しさん
2005/07/25(月) 01:19:13[2] 問題文(含コード&リンク):
次のプログラム(の一部)を効率よく実行するためには
どのような工夫が考えられるかを後述の観点について、具体的に例を示して述べよ。
観点
・計算をなるべく少なくする
・代入をなるべく少なくする
・コンピュータの命令実行レベルで、なるべく同時に処理するようにする
・なるべく使用メモリを少なくする
[3] 環境
[3.1] OS:Unix
[3.2] コンパイラ(バージョン): cc
[3.3] 言語:C
[4] 期限:2005年7月26日3時まで
[5] その他の制限:特になし
int a, b, c, d;
a=b*2+c;
d=3*c+2;
if(a>0){
c=b-1;
a=b*2+c;
}
else{
b=b+1;
a=b*2+c;
}
d=a+d;
よろしくお願いします。
0412デフォルトの名無しさん
2005/07/25(月) 01:19:21ここはム板な訳だが
0413デフォルトの名無しさん
2005/07/25(月) 01:19:330414デフォルトの名無しさん
2005/07/25(月) 01:22:27問題出している人は一部asでやるようなことをccだけでやれと仰ったみたいだね。
0415デフォルトの名無しさん
2005/07/25(月) 01:26:39それ、本当にそんな問題だった?
0418デフォルトの名無しさん
2005/07/25(月) 01:32:31うはは、さわやかというか濃いというか。
アセンブラ使わないと3番目なんかは気休めしかできないような気がするよ。
あと、いきなり bやらcが初期化なしで使われているんだけど、
問題にバグが仕込まれているヒッカケ問題なのかな?
0419411
2005/07/25(月) 01:40:10ttp://ranobe.sakuratan.com/up/updata/up47651.jpg
bとcの初期化…バグ…ヒッカケ問題 orz
ヒッカケ問題かさえわからない状況です。
なんせ説明もなしに課題わたされただけですから。。。
0420デフォルトの名無しさん
2005/07/25(月) 02:00:39うーん、すまんが漏れでは問題の意図がわからないよ。
0422デフォルトの名無しさん
2005/07/25(月) 02:07:10他の分かる人が見てくれるかもね。
0423デフォルトの名無しさん
2005/07/25(月) 02:23:44if((b << 1) + c > 0){
c = b - 1;
}
else{
b++;
}
d += (b << 1) + c;
ソースの一部という条件があるのがなぁ・・・
適当なのでちょっと自信ないが。
0424デフォルトの名無しさん
2005/07/25(月) 02:27:49それだとaの最終的な状態が違う。
0425デフォルトの名無しさん
2005/07/25(月) 02:29:46書き込んだ後で気づいた。
0426デフォルトの名無しさん
2005/07/25(月) 08:17:440427デフォルトの名無しさん
2005/07/25(月) 11:15:54ありがとうございました。
do文を使っているみたいですが、これを使わないプログラムはどうすればいいのでしょうか。
do文習っていないので使えないのです...
0428デフォルトの名無しさん
2005/07/25(月) 11:17:31[2] 問題文(含コード&リンク):
ファイルに適当な文字列を書き込んでおく。
(ただし、一行あたり10文字以内、10行以内と仮定してもよい。)
ファイルより文字列を読み込んでソートする。
(ソート済の配列やリストなどに追加すればそれでよい)
ソート済文字列をファイルに出力
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):.NET 2003
[3.3] 言語:C
[4] 期限:7月27日まで
どうかよろしくお願いします
0429デフォルトの名無しさん
2005/07/25(月) 11:39:34[2] 問題文:
今までの復習みたいな感じらしいんですが、その時授業休んでてよく分からないんです。
友達もあんまりいなくて・・・ お力を貸してください・・・。
ある地域の、複数の学校の生徒数を入力すると、それらの平均生徒数と学校数を求めるプログラム。
例
複数の学校の生徒数を入力してください。 2000 1500 4800 2500
学校数は 4 です。
平均生徒数は 2700 です。
みたいな感じです!
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5.1
[3.3] 言語:C
[4] 期限:2005年7月25日21時まで
[5] その他の制限:
今日このレポートを知りました・・・。こんな時間に申し訳ありませんが、どなたかいらっしゃいましたらよろしくお願いします・・・。
0430デフォルトの名無しさん
2005/07/25(月) 12:18:53友達もあんまりいなくてにカワイソス
0431デフォルトの名無しさん
2005/07/25(月) 12:23:17丁寧に書いていただいて、とても参考になりました。
ありがとうございました。
0432デフォルトの名無しさん
2005/07/25(月) 12:23:310433デフォルトの名無しさん
2005/07/25(月) 12:30:12#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char buf[256];
char *token;
char sep[] = " \n";
int tmp;
int num = 0;
int sum = 0;
printf("複数の学校の生徒数を入力してください。");
fgets(buf, 256, stdin);
token = strtok(buf, sep);
while(token != NULL) {
if((tmp = atoi(token)) != 0) {
num++;
sum += tmp;
}
token = strtok(NULL, sep);
}
printf("学生数は%dです\n", num);
printf("平均生徒数は%dです", sum/num);
return 0;
}
変数名はてきとうなので直してくれ
0434430
2005/07/25(月) 12:42:09#include <stdio.h>
int main(void) {
int school, people, sum = 0;
printf("複数の学校の生徒数を入力してください。");
for (school = 0; scanf("%d", &people) == 1; ++school) sum += people;
printf("学校数は %d です。\n", school);
if (school) printf("平均生徒数は %d です。\n", sum / school);
return 0;
}
0435デフォルトの名無しさん
2005/07/25(月) 12:47:54ベーシックC言語(期末課題)のどこに笑う所があるわけ?
0436デフォルトの名無しさん
2005/07/25(月) 14:05:03ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/788.txt
はじめのころは do while だったが最終的にはfor(;;)で十分だった。
あと264をよく読んだら要求と違っていたので修正した。
実行結果とソースを比べてくれ。
0437デフォルトの名無しさん
2005/07/25(月) 15:26:33最速で O(n) 一番遅いとき(全部の単語が1回ずつしかでなかったとき)で O(n log n)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/792.c
0438デフォルトの名無しさん
2005/07/25(月) 15:43:47int str_eq_ci(const char * lhs, const char * rhs) {
return (toupper(*lhs) == toupper(*rhs) &&
(*lhs == '\0' || str_eq_ci(lhs + 1, rhs + 1)));
}
だ。orz
0439デフォルトの名無しさん
2005/07/25(月) 15:53:01[2] 問題文(含コード&リンク):
test.txt http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/793.txt
を読み込んで、各行ごとに数値、文字列、文字列の順に配列に格納しなさい。
また、出力して確認しなさい。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5.1
[3.3] 言語:C
[4] 期限:2005年07月26日11:00まで
[5] その他の制限:配列は動的に確保
test.txtは各項目はタブで区切ってあります。
自作コード http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/796.c
現状では配列を結構大きく取っています、これを項目の長さに合うように可変にしたいです。
また、コーディングで狂ってるトコがありましたらご指摘お願いします。
0440デフォルトの名無しさん
2005/07/25(月) 16:03:37※0が入力されるまで処理を繰り返す。できれば一度目の0入力に対応していただけると
ありがたいです。
---------c:\例題.txtの内容-------
1,あああああああ
2,いいいいいいい
65,ううううう うううううう
89,えええ えええ ええ
99,お願いします。
--------------------------
↓↓↓↓実行結果↓↓↓↓
コード?65
ううううう うううううう
コード?
↑↑↑↑↑↑↑↑↑↑↑↑
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ:gcc
[3.3] 言語:C
[4] 期限:なし
0441デフォルトの名無しさん
2005/07/25(月) 16:11:59>>1
0442デフォルトの名無しさん
2005/07/25(月) 16:15:060443デフォルトの名無しさん
2005/07/25(月) 16:20:57>コーディングで狂ってるトコ
頭?
それはさておき、intは二重構造にする必要ねぇべさ。
それから、sizeof(char)は1だから掛ける必要なし。
文字列の取得は制限を設けない限り、事前に長さの予測はできない。
どうしてもということなら、2パスにして事前に調べるしかない。
0444デフォルトの名無しさん
2005/07/25(月) 16:21:06一応誘導されてきたみたい。
どうせテンプレに従ってないからあれだけど。
0445デフォルトの名無しさん
2005/07/25(月) 16:24:07[1] 授業単元: プログラミング演習
[2] 入力されたコードから一致するデータを"c:\例題.txt"から取得する。
※0が入力されるまで処理を繰り返す。できれば一度目の0入力に対応していただけると
ありがたいです。
---------c:\例題.txtの内容-------
1,あああああああ
2,いいいいいいい
65,ううううう うううううう
89,えええ えええ ええ
99,お願いします。
--------------------------
↓↓↓↓実行結果↓↓↓↓
コード?65
ううううう うううううう
コード?
↑↑↑↑↑↑↑↑↑↑↑↑
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ:gcc
[3.3] 言語:C
[4] 期限:無期限
0446デフォルトの名無しさん
2005/07/25(月) 16:30:33無理に理解するのも面倒くさいから、やらない。
0447デフォルトの名無しさん
2005/07/25(月) 16:40:0510行目まで、さらに、11行目から16行目までが何を行う命令かを説明してください。
-------------------------------------------------Sample10.java------------------------------------------------------
1: class Sample10{
2: public static void main(String args[])
3: {
4: int num[][]; <--(1)
5: num = new int [5][5]; <--(2)
6: for(int i=0;i<5;i++){
7: for(int j=0;j<5;j++){
8: num[i][j] = i+j;
9: }
10: }
11: for(int i=0;i<5;i++){
12: for(int j=0;j<5;j++){
13: System.out.print(num[i][j]+" ");
14: }
15: System.out.println("");
16: }
17: }
18:}
教えていただけませんでしょうか。どうかおねがいします
お願いします!!!
0448デフォルトの名無しさん
2005/07/25(月) 16:40:43ヒント:スレタイ
0449デフォルトの名無しさん
2005/07/25(月) 17:15:55゚Д゚)逝ってよし
0450デフォルトの名無しさん
2005/07/25(月) 17:55:24#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
FILE *fp;
int in, code;
char buf[256];
char *token;
if((fp = fopen("例題.txt", "r")) == NULL) exit(1);
do {
printf("コード?");
scanf("%d", &in);
fseek(fp, 0, 0);
while(feof(fp) == 0) {
fgets(buf, 256, fp);
token = strtok(buf, ",");
code = atoi(token);
if(in == code) {
token = strtok(NULL, ",");
printf("%s", token);
break;
}
} while(in != 0);
fclose(fp);
return 0;
}
0451デフォルトの名無しさん
2005/07/25(月) 17:59:350452デフォルトの名無しさん
2005/07/25(月) 18:02:210453デフォルトの名無しさん
2005/07/25(月) 18:07:230455デフォルトの名無しさん
2005/07/25(月) 18:35:48[2] 問題文(含コード&リンク):
Create an invoice object that contains all the information necessary to process one line of
an invoice. Assume that the invoice must include the following data and functions.
Data:
Quantity Ordered
Quantity Shipped
Part Number
Part Description
Unit Price
Sales Tax Rate
Sales tax Amount
Shipping
Total
Functions:
* A function to initialize all the data items to 0, except the Sales Tax Rate, which should be initialized to 5%.
* A function to allow the user to initialize all the data items from the keyboard.
* A function to calculate the Extended Price of the item.
* A function to calculate the Sales Tax Amount of the item.
* A function to calculate the Total Amount of the invoice.
* A function to display the invoice data with header information in a businesslike format.
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:7月26日まで
[5] C++は,初めて触るので知識ないに等しいです.いろいろ調べてるうちにこのスレにたどり着きました.よろしくお願いします.
0456デフォルトの名無しさん
2005/07/25(月) 19:04:50ttp://www.tcdb.com/tcdb_object_implementation.html
0457デフォルトの名無しさん
2005/07/25(月) 19:32:59[2] 問題文(含コード&リンク): 入力させた文字列を1文字ずつリストに変換して
辞書順に直す内容。マージソート使う方法考えたんだけど、条件として頭に節点付
いているから使えなくて困っている。
[3] 環境
[3.1] OS:Unix
[3.2] コンパイラ(バージョン): 分からん
[3.3] 言語:C
[4] 期限:早ければ早いほど。
[5] その他の制限:なし。
0458デフォルトの名無しさん
2005/07/25(月) 19:36:33偉そうだな氏んでイイヨ
0459デフォルトの名無しさん
2005/07/25(月) 19:43:21qsortでも使ってください
0460デフォルトの名無しさん
2005/07/25(月) 20:35:55[2] 問題文(含コード&リンク): 3次方程式の解
ただし、虚数なら(a+-biのように表示)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 明後日まで
[5] その他の制限:ないです。よろしくお願いします。
0461デフォルトの名無しさん
2005/07/25(月) 20:37:01[2] 問題文:
与えられたバスの時刻表を検索し、出発時刻または現在時刻に最も近い
バスの出発時刻を出力。
ユーザが指定した時刻(または現在時刻)がバスの出発時刻に重なった場合は
間に合わないものとし、次のバスを出力。また、次のバスが存在しない場合は
存在しないと報告。
無効な時間はエラーを返す。
なお、時刻表は以下の形式に従ったテキストファイルで与えられる。
・1行目にはその時刻表の名前が記述される。
・2行目以降には、以下の形式に従った行が繰り返し記述される。
時間(0〜23の整数) その時間内の分(0〜59)の繰り返し -1
・各行における分は昇順でソートされており、行は時間で昇順にソートされていると仮定してよい。
7時の2分と45分にバスがあるとすると、
1行に「7 2 45 -1」と表示されるようです。
[3] 環境
[3.1] OS:WindowsまたはUNIX
[3.2] コンパイラ(バージョン): VisualC++またはgcc
[3.3] 言語:C/C++どちらでも可
[4] 期限:2005年7月28日
[5] その他の制限:特にありません。
よろしくお願いします。
0462kuro
2005/07/25(月) 20:49:54#include<stdio.h>
void main(){
int i,j;
char top[2][4]={{10,0},{10,34,0}},tail[2][4]={{0},{34,44,0}};
char a[15][100]={
"#include<stdio.h>",
"void main(){",
"int i,j;",
"char top[2][4]={{10,0},{10,34,0}},tail[2][4]={{0},{34,44,0}};",
"char a[15][100]={",
"};",
"for(i=0;i<=1;i++)for(j=0;j<5;j++){",
"printf(top[i]);printf(a[j]);printf(tail[i]);",
"}",
"for(i=1;i>=0;i--)for(j=5;j<13;j++){",
"printf(top[i]);printf(a[j]);printf(tail[i]);",
"}",
"}",
};
for(i=0;i<=1;i++)for(j=0;j<5;j++){
printf(top[i]);printf(a[j]);printf(tail[i]);
}
for(i=1;i>=0;i--)for(j=5;j<13;j++){
printf(top[i]);printf(a[j]);printf(tail[i]);
}
}
これはこのプログラムとまったく同じのを表示するプログラムなんですが、これをインデントをつけインデントも複製するようにすること。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ(バージョン):? [3.3] 言語:C [4] 期限:水曜日まで
[5] その他の制限:制限はなしです〜。色々やってみたんですが、なかなかできず・・・;。どなたか分かる方いたらお願いします><
0463デフォルトの名無しさん
2005/07/25(月) 20:59:25たとえば4800を1000で割ったとき5にしたいです。
できればマクロがいいです。
#define ROUNDUP(a, b) ((a + b - 1) / b) * b
でOK?
0464デフォルトの名無しさん
2005/07/25(月) 21:02:07ceil
ここは宿題丸投げスレだ!
0465455
2005/07/25(月) 21:25:35のデータおよび関数を含むと仮定せよ.
Data:
Quantity Ordered・・・・・・注文量
Quantity Shipped・・・・・・出荷量
Part Number・・・・・・・・・・・品物番号
Part Description・・・・・・・品物種類
Unit Price・・・・・・・・・・・・・・単価
Extended Price・・・・・・・・値上げ価格
Sales Tax Rat・・・・・・・・・・売上税率
Sale Tax Amount・・・・・・販売税額
Shipping・・・・・・・・・・・・・・・・出荷
Total・・・・・・・・・・・・・・・・・・・・合計
関数:
売上税率(5%)を除いて,すべてのデータの項目を0に初期化する関数
キーボードからのすべての項目を初期化するための関数
値上げされた品物を価格を計算するための関数
品物の売上税率を計算するための関数
品物の販税額を計算するための関数
実務的なフォーマットのヘッダ情報と請求書のデータを表示するため関数
訳です。正確に訳せていない部分もあると思いますが、よろしくお願いします。
0466デフォルトの名無しさん
2005/07/25(月) 22:02:48お前マルチしてたやつだろ?
なんか締め切りが変わってるけどいい加減諦めろって。
0467デフォルトの名無しさん
2005/07/25(月) 22:10:04意味分からん。
インデントつければいいじゃん。
0468デフォルトの名無しさん
2005/07/25(月) 22:12:13http://pc8.2ch.net/test/read.cgi/tech/1121657911/138
0469デフォルトの名無しさん
2005/07/25(月) 22:24:19ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/798.txt
フォーマットが確定しているなら構造体を使う。
冒頭のmallocは冗長過ぎ。確保する個数が多ければポインタ変数だけでもメモリを食う。
0471デフォルトの名無しさん
2005/07/25(月) 22:29:37で釣り決定だな
悲しいのはこっちだ
0472デフォルトの名無しさん
2005/07/25(月) 22:41:54#include <process.h>
int main()
{
system("type *.c");
//system("type *.cpp");
//system("type *.h");
return 0;
}
0473460
2005/07/25(月) 22:43:22てか>>207に同じ質問したやついるじゃん・・・
っで、ちょっとリンクたどっていきました。確かに一緒ですね・・・
実際、自分が与えられた問題は、ある3次方程式が与えられ、これには1解実数解が存在する(分数解なので計算しても求めれませんでした)
残り2解を求め、表示せよ
そのとき、それらが虚数解ならa+-bi、実数解ならa,bのようにせよ
ってやつです
0474デフォルトの名無しさん
2005/07/25(月) 22:52:04quine Cでぐぐれば腐るほど出てくるよ。もしくはIOCCC。
0475デフォルトの名無しさん
2005/07/25(月) 23:06:280476デフォルトの名無しさん
2005/07/26(火) 03:08:03エラーチェックとかほとんどしてないが。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void *s1, const void *s2) {
return strcmp(*(char **)s1, *(char **)s2);
}
int main() {
char *lines[10], buf[100];
int i = 0, j;
FILE *fp = fopen("sort.txt", "r");
while (fgets(buf, 10, fp) != NULL) {
lines[i] = strdup(buf);
++ i;
}
fclose(fp);
qsort(lines, i, sizeof(char *), compare);
for (j = 0; j < i; j++) {
printf("%s", lines[j]);
}
}
0477デフォルトの名無しさん
2005/07/26(火) 03:31:54[2] 問題文(含コード&リンク): トリビアであった
トランプを半分に分け 正確にシャッフルする作業を 8回繰り返すと順番が元に戻る
をC言語で本当かどうか求める
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:Cです
[4] 期限:7月29日までです
トリビア好きとかいきなり言い出し、思いついたとか言われました。わけがわかないままに単位とかに関わってしまいました
お願いできないでしょうか
0478デフォルトの名無しさん
2005/07/26(火) 03:41:39http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/801.txt
0479デフォルトの名無しさん
2005/07/26(火) 04:06:06http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/802.txt
0481デフォルトの名無しさん
2005/07/26(火) 05:02:04なので,低い程よくなります.そこで,1試合ごとの投球回数と失点数を
入力し,「全試合を通しての防御率」と「最近5試合の防御率」を入力する
たびに計算するプログラムを作ってください.ただし,1/3 回のような
アウトカウントによる投球回数は考えず,投球回数単位で計算するものと
します.
下の表に出ている値で正しいかどうかを確認してください.
なお,最大140試合まで入力できるようにしてください.また,
日本のプロ野球では,延長戦は12回までなので,投球回数に12より
大きい数値は入らないようにしてください.
0482デフォルトの名無しさん
2005/07/26(火) 05:17:420483デフォルトの名無しさん
2005/07/26(火) 06:04:39自分でやれ。氏ね
0484デフォルトの名無しさん
2005/07/26(火) 07:23:44マルチは氏ねは当然だが、テンプレ準拠せずに依頼する香具師はもっと氏ね。
0485デフォルトの名無しさん
2005/07/26(火) 09:02:26サブセットCで中間言語式インタプリタかLISPインタプリタを作ろうと思います。
ありがとうございました。
0486デフォルトの名無しさん
2005/07/26(火) 09:20:580487デフォルトの名無しさん
2005/07/26(火) 09:25:15[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/755.txt
の続きを編集して木構造を操作する関数を作成せよ
newnode()は新しい節を追加する関数、
printtree()は木のある節を根とする木のその下のValueを表示し、
その節からの深さを返す関数である。
まずはある値xと、ある節currentのポインタを与えて、
currentから下からxをvalueに持つ節を探して、その節のポインタを返す関数を作成する。
次に、xを追加する場所を探す関数を作成する。
この関数の戻り値はポインタのポインタ **nodeとするとよい。
これらを用いて、木にある値xを追加する関数を作成せよ。
ついでにnodeをfreeする関数も作って下さい
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン): .NET 2003
[3.3] 言語:C
[4] 期限:2005年07月28日まで
締め切りが短くなりました
どうかよろしくお願いします
0488デフォルトの名無しさん
2005/07/26(火) 10:16:10>>455
>>465
0489デフォルトの名無しさん
2005/07/26(火) 11:25:41>>485
Lispインタプリタはいい勉強になると思う。頑張ってくれ。
0490462
2005/07/26(火) 12:11:09普通にインデントつけただけではインデントまで複製してくれなくて・・・
インデントも複製するようにしたいんです。
>>474
う〜ん、検索してみたんですけど、インデントついてないのしかでなくて・・・
インデントつきの見つからないです><
探し方悪いのかな・・・。よかったらどこにあるか教えてください・・・
0491デフォルトの名無しさん
2005/07/26(火) 13:03:29[2] 問題文(含コード&リンク):
一行に1つ整数が書かれているファイルを読みこんで、昇順にソートして表示する
プログラムを作りなさい。
・データファイルの名前はコマンドライン引数で与える
・使い方を誤った時、ファイルが開けない時にはエラー
を出力する。
・データが1000行以上あればエラー(警告)を出力する
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン): emacs
[3.3] 言語:C
[4] 期限:2005年7月27日
よろしくお願いします。
0493デフォルトの名無しさん
2005/07/26(火) 13:27:41どアホウ
0494デフォルトの名無しさん
2005/07/26(火) 14:00:30コンパイラがemacsであると言い張るのなら、
(execute-shell-command "sort file")
とか。
0495にゃほ
2005/07/26(火) 14:10:35[2] 問題文:
1!+2!+3!+…+n!の和が777よい大きい場合における最小のnと、そのときの和を求めるプログラムを、�@for文�Awhile文�Bdo while文を用いて三通り作成せよ。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ(バージョン):?
[3.3] 言語:C++
[4] 期限:2005年7月27日
全くわからないのでよろしくお願いします。
0496あげ
2005/07/26(火) 14:38:41[2] プログラミング: 数字の1から9までを順に並べ、+−を適当に挿入して計算結果を100にすることを考える。
このような場合(計算結果が100になる場合)をすべて表示するようなプログラムを作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] gcc:
[3.3] 言語:C
[4] 期限:本日中
[5] 考え方:符号の入る可能性のある箇所の数の配列を用意し、
+符号を1、−符号を-1、符号なしを0と対応させてすべての場合
について実際に計算をすればよい
0497デフォルトの名無しさん
2005/07/26(火) 14:43:53#include <iostream>
int main() {
int sum = 0, n = 0;
for (int fact_n = 1; sum <= 777; sum += fact_n *= ++n) {}
std::cout << "n=" << n << "\nsum=" << sum << std::endl;
}
#include <iostream>
int main() {
int sum = 0, n = 0, fact_n = 1;
while (sum <= 777) sum += fact_n *= ++n;
std::cout << "n=" << n << "\nsum=" << sum << std::endl;
}
#include <iostream>
int main() {
int sum = 0, n = 0, fact_n = 1;
do sum += fact_n *= ++n; while(sum <= 777);
std::cout << "n=" << n << "\nsum=" << sum << std::endl;
}
0498にゃほ
2005/07/26(火) 17:24:270499デフォルトの名無しさん
2005/07/26(火) 18:13:21こんなんか?ちょっと汚いけど
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/803.txt
0500デフォルトの名無しさん
2005/07/26(火) 18:26:59ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/804.txt
0501デフォルトの名無しさん
2005/07/26(火) 19:05:10[2] 問題文(含コード&リンク):
10次以下の多項式を10次以下の多項式で割ったときの商と余りを求めるうろグラムを作れ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:木曜日まで
[5] その他の制限:ヒントとして、
1] 1 2 3 4
1 1 2
____
1 1 2[2
こういう風なやり方を習ったはずだけど、こんな感じで表示させたほうが楽だと言われました
よろしくお願いします
0502デフォルトの名無しさん
2005/07/26(火) 19:43:050503デフォルトの名無しさん
2005/07/26(火) 20:16:24再起版作ってみた。引数多いな。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/805.txt
0504503
2005/07/26(火) 20:30:100505C言語初心者
2005/07/26(火) 20:35:13[2] 問題文(含コード&リンク): 試験の点数(100点満点)を入力してA(80点以上)、B(70点以上)、C(60点以上)、D(60点未満)がそれぞれ何人かもとめる。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年7月27日6:00まで
[5] その他の制限:swith文をつかう
0506503
2005/07/26(火) 20:35:51ちょっとかっこ悪いけど。
void komachi(int *sigs, int index, int sum, int n, int sig)
{
if(index == MAX_N )
{
sum += n * sig;
if(sum == ANS)
{
printf("%d = ", ANS);
print_result(sigs, index);
}
}
else
{
if(index!=0)
{
sigs[index] = 0;
komachi(sigs, index+1, sum, n*10+index+1, sig);
}
sum += n * sig;
sigs[index] = 1;
komachi(sigs, index+1, sum, index+1, 1);
sigs[index] = -1;
komachi(sigs, index+1, sum, index+1,-1);
}
}
0507初心者
2005/07/26(火) 20:38:45[2] 問題文(含コード&リンク): 3科目の試験結果を入力し各科目の平均値と標準偏差を計算
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年7月27日6:00まで
[5] その他の制限:配列をつかう、人数をプログラム内で指定
おねがいします。
0508デフォルトの名無しさん
2005/07/26(火) 20:47:30バグが無いか自信はないが、こんなのでどうだろうか?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/806.c
「こんな感じで表示」がよく分からなかったのと、
入力の書式が明記されていなかった(?)ので、
独自の入出力にした。
割られる式の最高次の係数から順に定数項まで入力(無いときは0)、改行、割る式(同様)、改行
の純で入力。
出力は、
p=商
q=余り
ただしすべての係数が整数になる場合しか対応していない。
0509デフォルトの名無しさん
2005/07/26(火) 20:57:07勝手にA(80点以上)、B(70点以上80点未満)、C(60点以上7点未満)、
D(60点未満)と読んだ。
#include <stdio.h>
int main()
{
int A = 0, B = 0, C = 0, D = 0, score;
while (scanf("%d", &score) == 1 && 0 <= score && score <= 100) {
switch(score / 10) {
case 10: case 9: case 8:
A++; break;
case 7:
B++; break;
case 6:
C++; break;
default:
D++; break;
}
}
printf("A:%d人\nB:%d人\nC:%d人\nD:%d人\n", A, B, C, D);
return 0;
}
0510デフォルトの名無しさん
2005/07/26(火) 22:19:55>503より遅いけど
#include <stdio.h>
int calc(const char * str) {
int read, val, res = 0;
for (; sscanf(str, "%d%n", &val, &read) == 1; str += read, res += val)
;
return res;
}
void search(char * dest, int n, int idx) {
if (n == 10) {
dest[idx] = '\0';
if (calc(dest) == 100) {
puts(dest);
}
return;
}
dest[idx] = n + '0', search(dest, n + 1, idx + 1);
dest[idx] = '+', dest[idx + 1] = n + '0', search(dest, n + 1, idx + 2);
dest[idx] = '-', search(dest, n + 1, idx + 2);
}
int main(void)
{
char num[18] = "1";
search(num, 2, 1);
return 0;
}
0516デフォルトの名無しさん
2005/07/26(火) 22:39:25まぁ重いけど、もちつけ。
0517デフォルトの名無しさん
2005/07/26(火) 22:49:12エラーが出るときは、エラーメッセージをコピペ。
0518デフォルトの名無しさん
2005/07/26(火) 22:51:20, '' ` ` / ,!
. , ' レ _, rミ
; `ミ __,xノ゙、 ソー
i ミ ; ,、、、、 ヽ、
,.-‐! ミ i `ヽ.._,,))
//´``、 ミ ヽ. _,,..,,,,,,_
. | l ` ーー -‐''ゝ、,,)) ./ ,' 3 `ヽーっ
ヽ.ー─'´) l ⊃ ⌒_つ
''''''''' `''ー---‐'''''"
、ヾ'"''; /ゝ
ミ 彡 _/´ `ヽ ビクッ!
ミ 彡 、ヾ"``ヾ/ ,! Σ
. ミ ミ ,゙ ゝ o, oミ
ミ ミ ; `ミ __,xノ゙、
ミ ミ i ミ ; ,、、、、 ヽ、 ブワッ
ヾ、 ! ミ i `、ゞヾ'""''ソ;μ,
´"'`、 ミ ヽ. ヾ ,' 3 彡
. ` ーー -‐''ゝ、,,)) ミ ミ
彡 ミ
/ソ,, , ,; ,;;:、ヾ`
0519デフォルトの名無しさん
2005/07/26(火) 22:57:14エラーが出るときは、エラーメッセージをコピペ。
0520デフォルトの名無しさん
2005/07/26(火) 22:58:05, '' ` ` / ,!
. , ' レ _, rミ
; `ミ __,xノ゙、 ソー
i ミ ; ,、、、、 ヽ、
,.-‐! ミ i `ヽ.._,,))
//´``、 ミ ヽ. _,,..,,,,,,_
. | l ` ーー -‐''ゝ、,,)) ./ ,' 3 `ヽーっ
ヽ.ー─'´) l ⊃ ⌒_つ
''''''''' `''ー---‐'''''"
、ヾ'"''; /ゝ
ミ 彡 _/´ `ヽ ビクッ!
ミ 彡 、ヾ"``ヾ/ ,! Σ
. ミ ミ ,゙ ゝ o, oミ
ミ ミ ; `ミ __,xノ゙、
ミ ミ i ミ ; ,、、、、 ヽ、 ブワッ
ヾ、 ! ミ i `、ゞヾ'""''ソ;μ,
´"'`、 ミ ヽ. ヾ ,' 3 彡
. ` ーー -‐''ゝ、,,)) ミ ミ
彡 ミ
/ソ,, , ,; ,;;:、ヾ`
0521C言語初心者
2005/07/26(火) 23:00:25ありがとうございました。
とてもたすかりました
0522C言語初心者
2005/07/26(火) 23:08:54ありがとうございます
たすかりました
0523C言語初心者
2005/07/26(火) 23:34:04ありがとうございまた。
てともたすかりました。
0524C言語初心者
2005/07/26(火) 23:35:04ありがとうございまた。
てともたすかりました。
0526C言語初心者
2005/07/26(火) 23:35:47ありがとうございまた。
てともたすかります。
0527C言語初心者
2005/07/26(火) 23:36:39ありがとうございまた。
てともたすかります。
0528509
2005/07/26(火) 23:46:340529デフォルトの名無しさん
2005/07/27(水) 01:39:16#include <stdio.h>
#include <math.h>
#define BODY_COUNT (2)
#define SUBJECT_NUM (3)
int main(void) {
int i, j, score, sum[SUBJECT_NUM], sum2[SUBJECT_NUM];
for (i = 0; i < SUBJECT_NUM; i++) sum[i] = sum2[i] = 0;
printf("%d人%d科目\n", BODY_COUNT, SUBJECT_NUM);
for (i = 0; i < BODY_COUNT; i++)
for (j = 0; j < SUBJECT_NUM; j++) {
printf("%d人目%d科目目:", i + 1, j + 1);
scanf("%d", &score);
sum[j] += score;
sum2[j] += score * score;
}
for (i = 0; i < SUBJECT_NUM; i++)
printf("%d科目目\n\t平均:%lf\n\t標準偏差:%lf\n", i + 1, (double)sum[i] / BODY_COUNT, sqrt((double)sum2[i] / BODY_COUNT - (double)sum[i] * sum[i] / BODY_COUNT / BODY_COUNT));
return 0;
}
0530デフォルトの名無しさん
2005/07/27(水) 02:00:47#include <stdio.h>
int main(int argc, char *argv[]) {
int i, j, n = 0, temp, num[1001];
FILE *fp;
if (argc != 2) {
printf("argument error!");
return 1;
}
if ((fp = fopen(argv[1], "r")) == NULL) {
printf("file open error!");
return 1;
}
while (fscanf(fp, "%d", &num[n]) == 1)
if (!(n++ < 1000)) {
printf("data error!");
return 1;
}
fclose(fp);
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - 1 - i; j++)
if (num[j + 1] < num[j]) {
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
for (i = 0; i < n; i++)
printf("%d\n", num[i]);
}
0531切実
2005/07/27(水) 09:04:13言語はCを使ってヘッダーはWindowsヘッダーを使う事になりました。
ゲームを作るといってもサウンドビジュアルノベルぐらいしか作れないので、当たり判定やその他基本的に必要なものなどのプログラムがほとんどわかっていません。。。
何か参考になる本やHPなどがあったら教えてください。
0532デフォルトの名無しさん
2005/07/27(水) 09:06:06ゲ製作板で質問汁
0533切実
2005/07/27(水) 09:07:38C言語でって事だったのでこっちに来ちゃいました。
スミマセンでした。
そっちのほうに行かせてもらいます。。。
0534デフォルトの名無しさん
2005/07/27(水) 11:17:06[2] 問題文(含コード&リンク): ・scanf関数を用いて名前を入力し、その名前を格納するための変数を
動的メモリを用いて作成しなさい(終端記号に注意する)。
・次に、作成した変数にscanf関数から入力された名前を格納しなさい(文字列関数を用いる)
・最後に、作成した変数の中身およびバイト数をprintf関数を
用いてコンソール画面に出力し、その変数のメモリ(動的メモリ)を解放しなさい。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C++
[4] 期限:2005年7月29日まで
[5] その他の制限:習っているのはif,for,配列,ポインタ,構造体
関数,ファイル入出力,動的メモリです。
0535534
2005/07/27(水) 11:17:590536デフォルトの名無しさん
2005/07/27(水) 11:39:23#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
char Name[1024];
scanf("%1024s", Name);
char *pName = new(nothrow) char[strlen(Name) + 1];
if (pName)
{
strcpy(pName, Name);
printf("%s", pName);
delete[] pName;
return 0;
}
else
return 1;
}
0537534
2005/07/27(水) 12:12:39ありがとうございます。
省略された所が、今は読めないので読むことが可能になったら、ためしてみますね。
0538デフォルトの名無しさん
2005/07/27(水) 19:17:40[2] 問題文(含コード&リンク):
氏名(ローマ字)を入力し,イニシャルを表示するプログラムを作成しなさい.
ただし,姓と名は空白で区切られているものとする.
イニシャルは大文 字で出力し,ピリオドを加えること.
大文字に変換する関数toupper()を使用して良い.
その際は,#include <ctype.h> を加えること.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:05年8月29日まで
[5] その他の制限:なし
よろしくお願いします。
0539デフォルトの名無しさん
2005/07/27(水) 19:28:34期限が後一ヶ月もあるなら勉強しろよw
0540デフォルトの名無しさん
2005/07/27(水) 19:29:460541デフォルトの名無しさん
2005/07/27(水) 19:39:03#include<ctype.h>
#include<stdio.h>
int main(){
char sei[256];
char mei[256];
printf("氏名をローマ字で入力してください。\n");
scanf("%s %s",sei,mei);
printf("イニシャルは%c.%c\n",toupper(mei[0]),toupper(sei[0]));
}
0542デフォルトの名無しさん
2005/07/27(水) 20:24:45助かりましたm(o・ω・o)m
0543デフォルトの名無しさん
2005/07/28(木) 15:50:58[2] 問題文(含コード&リンク):
大きさNのバイト配列 n[N] がある。
これを、m バイトだけ右方向へはみ出た分は前に来るように
ローテートさせる。
元の配列上で N回のスワップ でローテートを完了させよ。
void rotate( unsigned char n, int N, int m );
[3] 環境
[3.1] OS:Linux推奨
[3.2] コンパイラ(バージョン): gcc2.95以上推奨
[3.3] 言語:C
[4] 期限:2005年7月31日23:59まで
[5] その他の制限:
・ネストは3回まで
・再帰禁止
・他にNバイト分作業領域を用意することは禁止
よろしくおねがいします(><)!
0544デフォルトの名無しさん
2005/07/28(木) 16:40:58void rotate( unsigned char n[], int N, int m ) {
int i, j;
m %= N;
if (m < 0) m += N;
for (i = 0; i < m; i ++) {
for (j = i + m; j < N; j += m) swap(& n[i], & n[j]);
swap(& n[i], & n[j - N]);
}
}
スワップ自分で書いて。
0545デフォルトの名無しさん
2005/07/28(木) 17:54:31ありがとうございます!
でも、これだとNがmで割り切れないときには
誤動作します(><)!
0546デフォルトの名無しさん
2005/07/28(木) 19:56:21わり、早とちりした。
void rotate( unsigned char n[], int N, int m ) {
int i, j, rem;
m %= N;
if (m < 0) m += N;
while (N - m) {
for (i = 0; i < m; i ++) for (j = i + m; j < N; j += m) swap(& n[i], & n[j]);
rem = N % m; N = m; m = N - rem;
}
}
0547デフォルトの名無しさん
2005/07/28(木) 21:14:29ありがとうございます!
でも、これだとm=0のときには
セグります(><)!
0549デフォルトの名無しさん
2005/07/28(木) 21:37:12if (m==0) return;
0550デフォルトの名無しさん
2005/07/28(木) 22:56:25それじゃ、Nスワップしないな。
0551デフォルトの名無しさん
2005/07/29(金) 00:19:01[2] 問題文(含コード&リンク):
以下のコマンドを実行するメニューを持つプログラムを書いてください:
1. 文字列のファイルを開き、それらをベクトル(vector<string> vc)に格納します。
2. ベクトルを出力します。
3. quicksortを使用して、ベクトルを分類します。
4. mergesortを使用して、ベクトルを分類します。
9. プログラムを停止します。
[3] 環境
[3.1] OS:Windows XP SP2
[3.2] コンパイラ(バージョン):Visual C++ .NET
[3.3] 言語:C++ (コンソール)
[4] 期限:過ぎているため、なるべく早くお願いします。
0552デフォルトの名無しさん
2005/07/29(金) 00:19:44実はきっちりN回スワップ、とかいう罠だったりするのでは…とか勘繰ってしまう
0553デフォルトの名無しさん
2005/07/29(金) 00:30:24分類ってなんだ?
0554デフォルトの名無しさん
2005/07/29(金) 00:32:12std::vector<std::string>に格納って言われても…各行ごとに格納するとか?。
0555デフォルトの名無しさん
2005/07/29(金) 00:54:390556デフォルトの名無しさん
2005/07/29(金) 04:13:58すいません、分類というのはソートするという意味合いです。
たとえば、DBC BCD ABD ABA AAB という5つの文字列があった場合、
AAB ABA ABD BCD DBC に並び替えるという意味だと思います。
授業でサンプルにもらったクイックソートのコードです。↓のコードは文字列では
なく、文字を置き換えるものになっているようです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/811.txt
>>554
行関係なく、テキストファイルに保存されてる文字列をvectorに代入するという意味合いになります。
ifstream filename
vector<string> vc;
cin >> filename;
userin.open(filename);
while(userin){
userin >> temp;
vc.push_back(temp);
}
userin.close();
わかりにくい文章ですいません。また何かわかりにくい所がありましたら、お知らせください。
0557デフォルトの名無しさん
2005/07/29(金) 05:01:38この場合は、こういう風にクイックソート使え、みたいなアドバイスありましたら、どうぞよろしくお願いします。
http://www.interq.or.jp/jazz/iijima/stl/contents/c_to_stl.html
0558544=546
2005/07/29(金) 07:43:34漏れの作ったやつはNがmで割り切れないならN-1回、割り切れるならN-1回未満のスワップをする。
N回ぴったりのスワップで作れって問題だったらけっこうしんどいな。
(無意味にスワップしないようにつくるなら)
暇ができたら考えてみようかな。
>>550と>>552も暇ならN回ぴったりスワップで作ってみれ。
0559デフォルトの名無しさん
2005/07/29(金) 08:10:11[2] 問題文(含コード&リンク):
キーボードから入力した英字(a-z)に対し、ある特定の文字(ここでは仮にa,c,fとします)の場合は×を、
それ以外の文字の場合には○を出力しなさい。
例 入力文字:abcdefgh
×○×○○×○○
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5
[3.3] 言語:C
[4] 期限:2005年8月1日まで
[5] その他の制限:特になし。
数字と違って文字列をどのように扱ったらよいかがイマイチ…
よろしくおねがいします。
0560デフォルトの名無しさん
2005/07/29(金) 08:37:15#include <iostream>
#include <algorithm>
#include <iterator>
const char *tr(char c)
{
switch(c)
{
case 'a': case 'c': case 'f':
return "×";
default:
return "◯";
}
}
int main(void)
{
typedef std::istream_iterator<char> ii;
std::transform(ii(std::cin), ii(), std::ostream_iterator<const char *>(std::cout), tr);
0561560
2005/07/29(金) 08:38:24コピペミスった。
0562デフォルトの名無しさん
2005/07/29(金) 08:42:55>>559に言語 : Cと書いてあるわけだが。
0563560
2005/07/29(金) 08:49:03#include <stdio.h>
const char *tr(char c)
{
switch(c)
{
case 'a': case 'c': case 'f':
return "×";
default:
return "◯";
}
}
int main(void)
{
int c;
while((c = getchar()) != EOF)
fputs(tr(c), stdout);
return 0;
}
0565デフォルトの名無しさん
2005/07/29(金) 17:46:40[2] 数字を複数入れ、その最小値はいくらです。と表示。
その時−の数字も含み、
最初に0を入れたら何もありませんでしたと表示し、途中で0を入れたら↑の最小値の表示を行うPの一例をお願いします。
[3] 環境
[3.1] OS:Windows/
[3.2] VisualStudio(2003):
[3.3] 言語:C
[4] 期限:7月31迄
[5] その他の制限:ポインタまで
0566デフォルトの名無しさん
2005/07/29(金) 17:47:250567デフォルトの名無しさん
2005/07/29(金) 18:04:22#include <stdio.h>
#include <stdlib.h>
int main() {
int min = 0, n, flg = 0;
while (1) {
printf("整数を入力してください : ");
scanf("%d", &n);
if (n == 0) {
if (flg == 0) {
printf("何もありませんでした\n");
break;
} else {
printf("最小値は %d です\n", min);
break;
}
}
if (min > n) {
min = n;
}
flg = 1;
}
}
0568デフォルトの名無しさん
2005/07/29(金) 18:51:17自信満々に馬鹿やってるねーw
0569デフォルトの名無しさん
2005/07/29(金) 19:06:57[2] 問題文(含コード&リンク):
>>559の結果からなんですけれども…
例えば得られた OOXOXOOOOX…という文字列から、Oが相対的な1番目と5番目の位置にあるとき
(例: ---O----O--- -は任意。OでもXでも可)、
「4番目に1-5が見つけられました。」というメッセージを付け加える場合どうしたらよいでしょう?
また、複数ある場合(例2: ---O----O------O----O---)には
「4番目に1-5が...」
「16番目に1-5が...」としたいです。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5
[3.3] 言語:C
[4] 期限:2005年8月1日まで
[5] その他の制限:特になし。
「任意の〜」というところでどーしたらよいものかと…
strstrとかで検索してもどうにもならなそうなので。
どなたかよろしく、お願いします。
0570デフォルトの名無しさん
2005/07/29(金) 19:29:230571デフォルトの名無しさん
2005/07/29(金) 19:35:00>Oが相対的な1番目と5番目の位置にあるとき
その例だと一番目と六番目のことか?
0572デフォルトの名無しさん
2005/07/29(金) 19:37:26いい点が欲しいので、>>568さんお願いします。
0573569
2005/07/29(金) 19:41:52すみません、分かり辛かったみたいで。
とりあえず言いたかったのはあるOから数えて5番目にまたOがある時
っていうことです。
つまり、OとOの間が4つ空いている場合です。
さらに具体例を挙げると
「3番目と8番目に1-5の関係が...」(4,5,6,7番目は何でもいい)
「16番目と21番目に1-5の関係が...」(17,18,19,20番目は何でもいい)
「110番目と115番目に...」(111,112,113,114番目は何でもいい)
といった具合のことなんですけれども。
0574!568
2005/07/29(金) 19:43:56#include<stdio.h>
int main(){
int n,min = 0;
puts("数字を入力してください");
scanf("%d",&n);
min = n;
while(n){
if(min > n)min = n;
puts("数字を入力してください");
scanf("%d",&n);
}
if(min)printf("最小値は%dです\n",min);
else printf("何もありませんでした\n");
return 0;
}
0575569
2005/07/29(金) 19:45:24書き直すと↓
「つまり、OとOの間が3つ空いている場合です。
さらに具体例を挙げると
「3番目と7番目に1-5の関係が...」(4,5,6番目は何でもいい)
「16番目と20番目に1-5の関係が...」(17,18,19番目は何でもいい)
「110番目と114番目に...」(111,112,113番目は何でもいい)
といった具合のことなんですけれども。 」
です(´・ω・`)
0576デフォルトの名無しさん
2005/07/29(金) 19:52:05scanf("%d",&n);
min = n;
while(n){
if(min > n)min = n;
puts("数字を入力してください");
scanf("%d",&n);
この辺が馬鹿すぎ。
0577574
2005/07/29(金) 20:17:50二回入力処理を書いているのが馬鹿だ。と言っていると仮定して書き直してみた。
俺の理解が違ってたら指摘頼むわ。
#include<stdio.h>
int main(){
int n=0,min = 0;
do{
if(!min || min > n)min = n;
puts("数字を入力してください");
scanf("%d",&n);
}while(n);
if(min)printf("最小値は%dです\n",min);
else printf("何もありませんでした\n");
return 0;
}
0578デフォルトの名無しさん
2005/07/29(金) 21:05:35main()
{
int n;
printf("数字以外を入力 _ ");
while (scanf("%d", &n) <= 0) {
printf("暴走中");
}
printf("%d\n", n);
}
0579574
2005/07/29(金) 21:28:08俺が悪かった。エラー処理が面倒だから手を抜いていた。
>>577を訂正して
×
scanf("%d",&n);
○
if(scanf("%d",&n)<=0){
puts("変換エラー : 入力された文字は整数に変換できません。");
return 1;
}
こんな感じで良いか?
0580デフォルトの名無しさん
2005/07/29(金) 21:36:490581デフォルトの名無しさん
2005/07/29(金) 21:38:22じゃぁstr[]に○×が入ってると仮定して
for (i=0; i<= strlen(str)-4; i++)
{
if(str[i]=='○' && if(str[i+4]=='○')
{
printf("%d番目と%d番目に1-5の関係が見つけられました。\n", i, i+4)
}
}
バグってなければあってるはず(w
str[]に入れるのぐらい頑張ってみたまえ
0583デフォルトの名無しさん
2005/07/29(金) 21:48:530584デフォルトの名無しさん
2005/07/29(金) 21:55:47極秘情報
0585デフォルトの名無しさん
2005/07/29(金) 22:03:25[2] 問題文(含コード&リンク):
シンプレックス法(単体法)で線形計画問題を解くプログラムを作成せよ。
とりあえずつくってみたのですが、
コンパイルは通る(警告messageもなし)ものの、1回は計算してくれるのですが
2回目の計算で強制終了になってしまいます。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/813.txt
どのように修正すればいいのでしょうか?
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ(バージョン): Borland C
[3.3] 言語:C
[4] 期限:2005年8月4日まで
[5] その他の制限: なし
よろしくお願いします。
0586デフォルトの名無しさん
2005/07/29(金) 22:21:32??
0587デフォルトの名無しさん
2005/07/29(金) 22:41:48INT_MAX
0588デフォルトの名無しさん
2005/07/29(金) 22:51:11[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/814.txt
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] 言語:C
[4] 2005/7/29 13:00まで
[5] その他の制限:なし
よろしくお願いします
0589デフォルトの名無しさん
2005/07/29(金) 23:26:19もう間に合わないよ
0590588
2005/07/29(金) 23:32:540591デフォルトの名無しさん
2005/07/30(土) 01:17:57んーとさ、ネタにマジレスするけれども。
せめて、コンパイルが通るようにしてから提出しよう。
マジだったら…なんてーか、自分で作った部分を解読させよーとしないで、
丸投げしたほーがよい。
0592デフォルトの名無しさん
2005/07/30(土) 01:38:30それを作るって課題じゃないのか、知らんが
0593デフォルトの名無しさん
2005/07/30(土) 01:48:42[2] 問題文(含コード&リンク):
関数f(x)をテーラー展開を利用すると次のような形になる
f(x+△x)=f(x)+f'(x)△x+f''(x)(△x)^2/2!+f'''(x)(△x)^3/3!・・・・・・
この展開式を利用して√(x+△x)の近似計算を行いたい
√101、√201、√301、√401、√501を繰り返し計算で求めよ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):不明
[3.3] 言語:C
[4] 期限:2005/7/30/11:00
[5] その他の制限:制御構造、条件式まで
期限ぎりぎりで申し訳ありませんが、よろしくお願いします。
0594デフォルトの名無しさん
2005/07/30(土) 02:12:22まー、知らんでヨコヤリ入れるなら、ソース読めや。
0595デフォルトの名無しさん
2005/07/30(土) 02:25:04自分で作ったんじゃないんだろ、自分で作ったらmain関数作れないわけねーし
0596デフォルトの名無しさん
2005/07/30(土) 02:48:03多少は言いたいことが分ってもらえるはずだが?
…んで、その後、ソースを読んでみ。
0597デフォルトの名無しさん
2005/07/30(土) 02:53:01if(L == NULL){
return(FALSE);}}
?ナニコレ?
0598初心者
2005/07/30(土) 03:00:24いただけるのでしょうか?
0599デフォルトの名無しさん
2005/07/30(土) 03:04:31たぶん、慌てて書き写したんだろうがこれはヒドい
もちついて再うpしなさい
0600デフォルトの名無しさん
2005/07/30(土) 03:08:530601デフォルトの名無しさん
2005/07/30(土) 03:14:15うpしてここにリンク貼ればいいんじゃね?
0602デフォルトの名無しさん
2005/07/30(土) 03:15:16#include <math.h>
#include <stdio.h>
double sqrt_approx(double x, double dx, size_t n);
int main()
{
printf("sqrt(101) = %f\n", sqrt_approx(100, 1, 10000));
printf("sqrt(201) = %f\n", sqrt_approx(200, 1, 10000));
printf("sqrt(301) = %f\n", sqrt_approx(300, 1, 10000));
printf("sqrt(401) = %f\n", sqrt_approx(400, 1, 10000));
printf("sqrt(501) = %f\n", sqrt_approx(500, 1, 10000));
return 0;
}
double sqrt_approx(double x, double dx, size_t n)
{
static double term = 0.0;
double result;
if (n <= 0) return term = sqrt(x);
result = sqrt_approx(x, dx, n - 1);
term *= (3.0 - 2.0 * n) / 2.0 / n * dx / x;
return result + term;
}
書いてから気付いたけど、
[5] その他の制限:制御構造、条件式まで
ってもしかして再帰習ってないとか言いそうな雰囲気?
0603初心者
2005/07/30(土) 03:24:53レスありがとうございます。Upは、ろだの添付ファイルに宿題を書いて
書き込み、リンク張りはこちらにすればよろしいのでしょうか?
また、添付ファイルのパスはどこに表示されるのでしょうか?
質問ばかりですみません。
0604デフォルトの名無しさん
2005/07/30(土) 03:42:17短ければ直接ここに貼る。長ければロダに上げて添付ファイルのURIを
貼る。ただし、いずれにしても>>1の質問テンプレに従うこと。
添付ファイルのURIの取得は、InternetExplorerを使っているなら、リンクを
右クリックしてショートカットのコピーでクリップボードにコピーされる。
PC初心者板並みの内容な訳だが。
0605デフォルトの名無しさん
2005/07/30(土) 04:09:270606デフォルトの名無しさん
2005/07/30(土) 05:36:37[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/818.txt
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ(バージョン):bcc++
[3.3] 言語:C
[4] 期限:2005/7/30/正午まで
よろしくお願いします。
0607デフォルトの名無しさん
2005/07/30(土) 06:38:19ここで勉強しなおしてこい
http://www.fsinet.or.jp/~oraho/oraho/amiba/title.htm
0608デフォルトの名無しさん
2005/07/30(土) 07:10:07{
printf("整数:%d\n",15);
printf("実数:%f\n",15);
printf("1文字:%c\n",'m');
printf("文字列:%s","ひろゆき");
}
これを実行したのですが、中止とかの選択を選ぶ表示が出てきてしまいます。
なぜでしょうか?
0609デフォルトの名無しさん
2005/07/30(土) 07:18:54printf("実数:%f\n",15.0);
0610デフォルトの名無しさん
2005/07/30(土) 07:19:14>printf("実数:%f\n",15);
printfのような可変引数関数に引数を渡すときは暗黙の型変換がかからない。
15.0と書けば問題ない。
あとすれ違い。
0611607
2005/07/30(土) 07:26:030612デフォルトの名無しさん
2005/07/30(土) 07:26:360613デフォルトの名無しさん
2005/07/30(土) 08:53:07↓↓↓↓↓↓実行結果(例)↓↓↓↓↓↓
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
っていうのをどっかで見た覚えがある。。
課題多いんだろうなぁ・・・も疲れ様。
0614デフォルトの名無しさん
2005/07/30(土) 09:57:310615デフォルトの名無しさん
2005/07/30(土) 10:02:380616デフォルトの名無しさん
2005/07/30(土) 10:34:03ポジション、半角8桁だとファースト、キャチャー、ピッチャーが入らない悪寒
0617デフォルトの名無しさん
2005/07/30(土) 10:48:40偉そうに言うなチンカス野郎
0618デフォルトの名無しさん
2005/07/30(土) 10:56:43半角8桁なら入るだろ。半角かな使えば。
0619デフォルトの名無しさん
2005/07/30(土) 11:08:18数学がらみだとレスが鈍い。
(プログラマは、知らんことも多い)
あと、プログラムを改修してくれってのも、レスが鈍い。
それと、再現できるよーに、レポートを書くべし。
1つめのデータファイル、2つめのデータファイル。
入力、出力をかかんと。
あと・・・そーだなぁ・・・。フラグとか変数、初期化すべきものをしてないんじゃないかなぁ。
0620デフォルトの名無しさん
2005/07/30(土) 12:02:54絶対に答えないでおこうぜ皆んな。
0622デフォルトの名無しさん
2005/07/30(土) 12:48:21二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る頭を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ( ヽノ 新しい輝き
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ
/⌒ヽ
二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る風を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ( ヽノ 新しい輝き
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ ⊂二二二( ^ω^)二⊃ 喪れも参戦するお
三 レレ ノ>ノ
/⌒ヽ
二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る風を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃
0623デフォルトの名無しさん
2005/07/30(土) 12:58:39二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る頭を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ( ヽノ 新しい輝き
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ
/⌒ヽ
二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る風を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ( ヽノ 新しい輝き
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ ⊂二二二( ^ω^)二⊃ 喪れも参戦するお
三 レレ ノ>ノ
/⌒ヽ
二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る風を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃
0624デフォルトの名無しさん
2005/07/30(土) 13:00:39ちなみに答えはもうできている。
うpしようか?しなーーーーーい。アヒャ Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!!
0625デフォルトの名無しさん
2005/07/30(土) 13:10:16二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る頭を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ( ヽノ 新しい輝き
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ
/⌒ヽ
二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る風を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ( ヽノ 新しい輝き
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ ⊂二二二( ^ω^)二⊃ 喪れも参戦するお
三 レレ ノ>ノ
/⌒ヽ
二( ^ω^)二⊃ /⌒ヽ
| / /⌒ヽ ⊂二二( ^ω^)二⊃ 光る風を追い越したらー
( ヽノ 二( ^ω^)/⌒ヽ | /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃ 君にきっと逢えるねー
ノ /⌒ヽ レレ | /
⊂二二二( ^ω^)二⊃
0626デフォルトの名無しさん
2005/07/30(土) 13:25:41>606 のリンク見てみろ
0627デフォルトの名無しさん
2005/07/30(土) 13:38:47どっかに半角8桁って書いてある?
0628デフォルトの名無しさん
2005/07/30(土) 14:19:360629デフォルトの名無しさん
2005/07/30(土) 15:41:22http://pc8.2ch.net/test/read.cgi/tech/1122705615/
0630デフォルトの名無しさん
2005/07/30(土) 16:43:33新婦レックス法の説明とか参考URLとか載せんと、
知らん奴はぜんぜん解かんし、だいたい
普段使うもんじゃないから誰もとかねェYO!
0631デフォルトの名無しさん
2005/07/30(土) 17:39:18彼はデバッグしてほしいのだ。
0632デフォルトの名無しさん
2005/07/30(土) 17:41:040633デフォルトの名無しさん
2005/07/30(土) 18:36:51人のコード修正しろなんていう依頼は一番やりたくない仕事だ。
0634デフォルトの名無しさん
2005/07/30(土) 20:04:44一番上の行の最小要素を探すときにjpibotって変数がバカになってる。
min=matrix[0][1];
の後のforを
for(j=2, jpibot=1;
とでも書いとけ。
どうでもいいけど、ソースみずらすぎ
0635606
2005/07/30(土) 22:44:04お願いいたします。
0636585
2005/07/30(土) 23:29:490637デフォルトの名無しさん
2005/07/30(土) 23:49:12いや>>636はバカが早く解けると思っている
つまり>>636はバカだということだ
ということは>>636が>>585を解けばいいと言うことだ
0638デフォルトの名無しさん
2005/07/31(日) 00:13:13回答お願いします;;
0639デフォルトの名無しさん
2005/07/31(日) 00:36:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/821.c
簡単な動作確認しかしてません。
#期限が今日(昨日)の正午ってなってるけどいいのか?
0640デフォルトの名無しさん
2005/07/31(日) 00:38:53仕様が曖昧。これだけでは答えられない(2分探索木だろうけれども)。
・「currentから下からxをvalueに持つ節を探して」
→探索方法の指定は?木の辿り方は複数ある。
・「その節のポインタを返す関数」
→該当する節が複数ある場合は?
・「xを追加する場所を探す関数」
→追加する場所の基準は?
・「nodeをfreeする関数」
→node以下全部?
0641606
2005/07/31(日) 00:47:170642606
2005/07/31(日) 04:17:15のソースを実行したら、強制終了してしまいます。氏名のファイル出力時
に躓いているようなのですが、全角文字を出力させる修正点を教えていただけないでしょうか?
0643デフォルトの名無しさん
2005/07/31(日) 04:34:51有志によるMMO製作です。
24時間体制でガンガン開発するでぇーーー
CreateGame〜陸海空オンライン〜
プログラマ募集中!力ある奴だけこぃ!!
ついてこれる奴だけ。募集。
あと、歴史に名を残したいやつ
0644デフォルトの名無しさん
2005/07/31(日) 04:48:39どうせ見てないだろうケド、お前に付き合ってたら、
歴史に不名誉な名を残したままあの世に行くことになりそうだから、
どっかに消えてくれ。
0645639
2005/07/31(日) 12:05:15>>606のサンプルにあるデータでは動作確認済み(文字数の関係でピッチャーは半角で入力)
だけど、どんなデータを入れたか教えてもらえます?
0646デフォルトの名無しさん
2005/07/31(日) 17:54:59windowsだと、リンク先をコンパイルするのが、めんどーだ。
windowsで環境構築すんの、どーすりゃいーのかのぉ?
0647デフォルトの名無しさん
2005/07/31(日) 18:15:07しばらくお休みかな。
0648デフォルトの名無しさん
2005/07/31(日) 18:47:070649デフォルトの名無しさん
2005/07/31(日) 19:15:15http://www.vector.co.jp/vpack/filearea/win/prog/c/
こんなにたくさんあるじゃない
0650デフォルトの名無しさん
2005/07/31(日) 20:04:330651デフォルトの名無しさん
2005/07/31(日) 20:23:27えーと、windowsで手軽にこのスレを見ながらコンパイルをしたいということかな?
だとしたら以下の手段で。
・telnet端末エミュレータでlinuxにログイン、gccを使用。
・cygwin環境を構築、gccなどを使用。
・DOSプロンプトからbccなどを使用。
尚、Windowsでのエディタには軽くてWindows的なI/Fも具えるXyzzyがお勧め。
0652606
2005/07/31(日) 21:49:32氏名と、ポジションは全角で登録したいんです。
氏名は全角12文字、ポジションは全角で8文字入るようにするにはどうしたらいいのでしょうか?
0653デフォルトの名無しさん
2005/07/31(日) 22:17:55構造体の配列要素数と、input()関数内の文字数判定個所を変更(×2)する。
0654デフォルトの名無しさん
2005/07/31(日) 22:23:36ありがとうございます。
関数内のみ構造体の配列要素数を(×2)するの忘れてました・・・。
0655↑
2005/07/31(日) 22:24:440656デフォルトの名無しさん
2005/08/01(月) 15:56:48[2] 問題文(含コード&リンク):
int型のデータを格納するためのスタック構造を実現したクラスを作って下さい.
仕様は自由ですが, 少なくとも以下の仕様を満たすようにして下さい.
○一引数のコンストラクタを持ち, 格納できるデータの最大数を設定できること.
○デフォルトコンストラクタを持ち, その場合の格納データ最大数は100であること.
また, 同様の条件で, キューを表すクラスも作って下さい.
[3] 環境
[3.1] OS:Windowsxp
[3.2] VisualStudio(2003)
[3.3] 言語:C ++
[4] 2005/08/01 17:00迄
[5] その他の制限:なし
よろしくお願いします
0657デフォルトの名無しさん
2005/08/01(月) 16:03:310658656
2005/08/01(月) 16:07:040659デフォルトの名無しさん
2005/08/01(月) 16:16:310660Ruby
2005/08/01(月) 16:18:37Rubyである数 n が素数であるかどうかの簡単な判定について
以下が条件です。
1. n をコマンドラインから入力する。to_i メソッドを使って整数化すること。
2. nが素数でないことを見つけるための変数 pflag に false を代入しておく。
3. n の平方根を超えない最大の整数を ne とする(たとえば n が 10 であれば, 10の平方根は 3.16... であるから, ne は 3 になる)。 (ここまでは下のソースに記述してある)
4. ここから for ループになる。
5. n を 2 から始まって ne までの数で割った,その余りが 0 であるかどうかを調べる。
6. もし 0 であったら, pflag に true を代入して,ループから脱出する。
7. ループを閉じる。
8. ループが閉じた後,もし pflag が true であれば,次のように出力する。最後は改行する。
"xx は素数です。"
9. そうでなければ,次のように出力する。最後は改行する。
"xx は合成数です。"
0661デフォルトの名無しさん
2005/08/01(月) 16:19:11例外安全・中立を重視する方向でよろしくお願いします
0662デフォルトの名無しさん
2005/08/01(月) 16:19:15氏ね
0663デフォルトの名無しさん
2005/08/01(月) 16:19:16Rubyはスレ違い。
0664Ruby
2005/08/01(月) 16:22:08失礼しました(焦)
0665デフォルトの名無しさん
2005/08/01(月) 16:38:49機能は最低限。
class array_stack {
int DATA_MAX, data_num, *data;
public:
array_stack(int max = 100) : DATA_MAX(max), data_num(0) {data = new int[DATA_MAX];}
~array_stack() {delete[] data;}
bool empty() {return data_num == 0;}
int pop() {if (empty()) throw "empty!"; return data[--data_num];}
void push(int t) {
if (data_num + 1 == DATA_MAX) throw "full!";
data[data_num++] = t;
}
};
class array_queue {
int DATA_MAX, data_num, *data;
public:
array_queue(int max = 100) : DATA_MAX(max), data_num(0) {data = new int[DATA_MAX];}
~array_queue() {delete[] data;}
bool empty() {return data_num == 0;}
int pop() {if (empty()) throw "empty!"; return data[--data_num];}
void push(int t) {
if (data_num + 1 == DATA_MAX) throw "full!";
int* first = data, * last = data + data_num;
while (last != first) {--last; *(last + 1) = *last;}
data[0] = t;
++data_num;
}
};
0666656
2005/08/01(月) 16:48:59本当にありがとうございます!
0667デフォルトの名無しさん
2005/08/01(月) 18:43:01ネットに繋げず遅くなりました、すいません
・「currentから下からxをvalueに持つ節を探して」
→探索方法の指定は?木の辿り方は複数ある。
指定は特にありません。
・「その節のポインタを返す関数」
→該当する節が複数ある場合は?
それなりに動けば良いらしいです
・「xを追加する場所を探す関数」
→追加する場所の基準は?
特にないです
・「nodeをfreeする関数」
→node以下全部?
全部です
0668デフォルトの名無しさん
2005/08/01(月) 18:47:55[2] 問題文(含コード&リンク):
(問い1)
長さがN文字である文字列Sの中で,異なる場所に2回以上繰り返して登場する部分列の
うち,最も長いものを見つけるアルゴリズムを設計し,その詳細を説明せよ.ただし,部
分列同士の一部が重なるような場合を許すものとする(例えばS=“ababa”の場合,求め
る部分列は“aba”となる).また,そのアルゴリズムの最大時間計算量のオーダーをNで
表せ.なお,授業で紹介したストリングマッチングのアルゴリズムを一部で使用する場合
には,その詳細を省略してよい.
(問い2)
C言語(あるいはそれに類似した他の言語でも可)を用いて「複素数」というデータ構造
を定義し,これに対する四則演算(加算,減算,乗算,除算),絶対値の計算,および値の
表示を行う関数をプログラムせよ.値の表示は,実部と虚部による直交座標表現と,絶対
値と偏角による極座標表現の,2通りを用意すること.解答はそれぞれの関数についてソ
ースコードの形で示せ.構造体,ポインタ,クラスなどの概念を使用してもよい.
[3] 環境
[3.1] OS:Unix
[3.2] コンパイラ(バージョン):emacs
[3.3] 言語:C
[4] 期限:2005年8月4日24:00まで
[5] その他の制限:高度過ぎなければよいです
0669デフォルトの名無しさん
2005/08/01(月) 18:54:520670デフォルトの名無しさん
2005/08/01(月) 20:40:43紹介したストリングマッチングのアルゴリズム、そんなんエスパーじゃないんでわかりません。
0671デフォルトの名無しさん
2005/08/01(月) 21:12:33力技。
typedef struct{ char *p1, *p2; int len; }result_t;
result_t *substrcmp(char *str, result_t *result)
{
unsigned int len = strlen(str);
char *str_end = str + len;
for(; len != 0; --len)
{
char *p1,*p2;
for(p1 = str; p1 != str_end - len; ++p1)
for(p2 = p1+1; p2 != str_end - len; ++p2)
if(0 == strncmp(p1,p2,len))
{
result->p1 = p1;
result->p2 = p2;
result->len = len;
return result;
}
}
return NULL;
}
0672671
2005/08/01(月) 21:21:580673デフォルトの名無しさん
2005/08/01(月) 21:22:30typedef struct{ char *p1, *p2; int len; }result_t;
result_t *substrcmp(char *str, result_t *result)
{
unsigned int len = strlen(str);
char *str_end = str + len;
for(; len != 0; --len)
{
char *p1,*p2;
for(p1 = str; p1 != str_end - len + 1; ++p1)
for(p2 = p1+1; p2 != str_end - len + 1; ++p2)
if(0 == strncmp(p1,p2,len))
{
result->p1 = p1;
result->p2 = p2;
result->len = len;
return result;
}
}
return NULL;
}
0674デフォルトの名無しさん
2005/08/01(月) 21:51:13[2] 問題文(含コード&リンク):
下記の条件を満たすクラスstudentを作成し、メインプログラムにて
個人名オブジェクトを設定して、出席回数に応じて成績判定し、出力せよ。
1.データメンバとして、出席回数、点数を含むこと。
2.メンバ関数として、出席回数増・減、点数計算、成績判定するものを定義せよ。
点数の計算は 5点×出席回数(全15回)+25点=100点
成績判定はA・B・C・D 4段階 判定の度合いは自由に決めていい
※5回以上欠席するとD(不可)になるようにすること。
3.コンストラクタにより、点数、回数の初期化を行うこと。
4.メインプログラムは複数名の入力を可能とすること。
5.ファイルはstudent.h ・・・データメンバ定義、メンバ関数宣言
student.cpp ・・・メンバ関数定義、コンストラクタ定義
test.cpp ・・・オブジェクト宣言、点数・成績判定
の構成にすること。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ(バージョン):Visual C++ 6.0
[3.3] 言語:C++
[4] 期限:2005年8月3日9:00まで
[5] その他(どこまで習っているか):教科書を早足でなぞった位・・・
0675デフォルトの名無しさん
2005/08/01(月) 22:40:09本当にそんな仕様でいいんだったら
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/822.txt
0676デフォルトの名無しさん
2005/08/02(火) 02:17:44全部書き込めるか不安
/****************************************************/
/*student.h内*/
/****************************************************/
typedef enum{
RANK_A = 1,
RANK_B,
RANK_C,
RANK_D,
} RANK;
#define POINT_A 85
#define POINT_B 90
#define POINT_C 80
//RANK_Dは0〜55
class student{
// データメンバとして、出席回数、点数を含むこと。
int point;
int student::CalcPoint(void); // pointとnum_existから計算
public:
int num_exist;
student::student(void); // num_exist
int student::ControlNumExist(int); // 増減
RANK student::JudgeResult(void);// pointから計算
};
0677デフォルトの名無しさん
2005/08/02(火) 02:20:39ごめん、改行が多くて書き込めないから他の誰かにがんばってもらって。
0678デフォルトの名無しさん
2005/08/02(火) 02:21:19なんか問題文がおかしいような気もするが、
とりあえずそれなりに仕様を満たすように書いてみた。
// --- student.h -------------------------------
#ifndef __student_h__
#define __student_h__
#ifndef UINT
#typedef unsigned int UINT;
#endif
#define MAX_DAYS 15
class student{
public:
student();
void Attend();
void Absent();
UINT GetCount();
UINT GetScore();
char GetGrade();
private:
UINT m_Attendance; // days attended
UINT m_Absence; // days absented
UINT m_Score; // scoring point
};
#endif //__student_h__
0679678
2005/08/02(火) 02:23:19// --- student.cpp (1) -------------------------
#include "student.h"
#define BORDER_A 95
#define BORDER_B 85
#define BORDER_C 75
student::student()
{
m_Attendance = 0;
m_Absebce = 0;
m_Score = 25;
}
void student::Attend()
{
if(m_Attendance + m_Absence < MAX_DAYS) {
m_Attendance++;
m_Score += 5;
}
}
void student::Absent()
{
if(m_Attendance + m_Absence < MAX_DAYS)
m_Absence++;
}
0680678
2005/08/02(火) 02:24:02UINT student::GetCount()
{
return m_Attendance;
}
UINT student::GetScore()
{
return m_Score;
}
char student::GetGrade()
{
UINT totalAbsence = MAX_DAYS - m_Attendance;
if( totalAbsence > 5 || m_Score < BORDER_C){
return 'D';
}else if( m_Score < BORDER_B ){
return 'C';
}else if( m_Score < BORDER_A ){
return 'B';
}else{
return 'A';
}
}
0681678
2005/08/02(火) 02:26:25#include "student.h"
#include <iostream.h>
#include <stdlib.h>
int main()
{
student A;
student B;
int i;
// A
for(i=0; i<rand()%MAX_DAYS; i++){ A.Attend(); }
for( ; i<MAX_DAYS; i++) { A.Absent(); }
cout<< "A: count = "<< A.GetCount();
cout<< ", score = "<< A.GetScore();
cout<< ", grade = "<< A.GetGrade() << endl;
// B
for(i=0; i<rand()%MAX_DAYS; i++){ B.Attend(); }
for( ; i<MAX_DAYS; i++) { B.Absent(); }
cout<< "B: count = "<< A.GetCount();
cout<< ", score = "<< A.GetScore();
cout<< ", grade = "<< A.GetGrade() << endl;
return 0;
}
0682678
2005/08/02(火) 02:29:16>>676の方を参考にした方が良いと思う。
つか、これそのままコピペしたら絶対先生に呼び出されるw
0683デフォルトの名無しさん
2005/08/02(火) 03:05:550684デフォルトの名無しさん
2005/08/02(火) 03:12:49[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/clip.gif
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年8月3日24:00まで
[5] その他の制限:なし
0685デフォルトの名無しさん
2005/08/02(火) 03:16:07[1]授業単元: アルゴリズム
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/823.lzh
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年8月3日24:00まで
[5] その他の制限:なし
0686デフォルトの名無しさん
2005/08/02(火) 04:02:16画像描画系は、ライブラリの指定をください。
0687685
2005/08/02(火) 04:33:25ライブラリの指定ってなんなんでしょうか?
私無知すぎですよね。。
0688デフォルトの名無しさん
2005/08/02(火) 07:17:16以下URLに問題と答えを載せたのですが、答えがどうも腑に落ちません。
F(2)を行った結果x=1+2=3になりましたが、これがF(3)におけるx=1の宣言後であるにも関わらず
F(3)ではx=1に戻ってしまっています。
またF(3)でx=4となった後メインプログラムに戻りますが、
ここでもx=3の宣言後にF(3)をしたはずですがX=3が最終出力になっています。
根本的に私の考えがおかしいのでしょうか?どうも流れからして納得できません。
よろしくお願いします。
http://www.za.ztv.ne.jp/yosi-h/
0689デフォルトの名無しさん
2005/08/02(火) 07:53:23残念、ここは解説スレでもなければPascalスレでもない。
ヒント:xはどこで宣言されて、どの範囲で有効かな?
0690デフォルトの名無しさん
2005/08/02(火) 08:51:54[2] 問題文(含コード&リンク):
L行M列の行列Xと M行N列の行列Y の積を求めるプログラムを 作成しなさい.ただし,任意の大きさの行列が計算できるようにしなさい.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:05年8月3日まで
[5] その他の制限:
お願いします。
0691デフォルトの名無しさん
2005/08/02(火) 08:53:46何回かに分けてみます
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_WIDTH 100
#define MAX_HEIGHT 100
#define POINT_NONE 0x30
#define POINT_EXIST 0x31
#define _DEBUG_
typedef struct{
int x, y;
} Point;
int main(void)
{
int ret = 0;
char buf[128];
Point s_point, e_point;
int set_flag = 0;
double a, b;// y = a * x + b
int i;
int h;
char pix[MAX_WIDTH][MAX_HEIGHT];
#ifdef _DEBUG_
FILE *d_file;
#endif
0692デフォルトの名無しさん
2005/08/02(火) 08:54:38// ピクセルの初期化
for(i=0; i<MAX_WIDTH; i++){
for(h=0; h<MAX_WIDTH; h++){
pix[i][h] = POINT_NONE;
}
}
while(set_flag == 0){
// 始点入力
printf("Please Input Start Point x:");
gets(buf);
s_point.x = atoi(buf);
printf("Please Input Start Point y:");
gets(buf);
s_point.y = atoi(buf);
// 終点入力
printf("Please Input End Point x:");
gets(buf);
e_point.x = atoi(buf);
printf("Please Input End Point y:");
gets(buf);
e_point.y = atoi(buf);
set_flag = 1;
0693デフォルトの名無しさん
2005/08/02(火) 08:55:30// 始点、終点チェック
if((s_point.x < 0) || (s_point.y <0) || (s_point.x >= MAX_WIDTH) || (s_point.y >= MAX_HEIGHT)){
printf("Irregular Start Point\r\n");
set_flag = 0;
}
if((e_point.x < 0) || (e_point.y <0) || (e_point.x >= MAX_WIDTH) || (e_point.y >= MAX_HEIGHT)){
printf("Irregular End Point\r\n");
set_flag = 0;
}
}
// ライン計算 height = A * width + B
if(s_point.x != e_point.x){
a = (double)(e_point.y - s_point.y) / (e_point.x - s_point.x);
b = (double)e_point.y - a * e_point.x;
}
else{
a = 0.0;
b = 0.0;
}
0694デフォルトの名無しさん
2005/08/02(火) 08:56:31// 上記width, heightの整数部を取り出し
// 該当pointの値をチェック
if(s_point.x < e_point.x){
for(i=s_point.x; i<=e_point.x; i++){
h = (int)(a * i + b);
pix[i][h] = POINT_EXIST;
}
}
else if(s_point.x > e_point.x){
for(i=e_point.x; i<=s_point.x; i++){
h = (int)(a * i + b);
pix[i][h] = POINT_EXIST;
}
}
else{// start = end
if(s_point.y < e_point.y){
for(h=s_point.y; h<=e_point.y; h++){
pix[s_point.x][h] = POINT_EXIST;
}
}
else{
for(h=e_point.y; h<=s_point.y; h++){
pix[s_point.x][h] = POINT_EXIST;
}
}
}
0695デフォルトの名無しさん
2005/08/02(火) 08:57:03#ifdef _DEBUG_
d_file = fopen("debug.txt", "w+");
// ピクセルの初期化
for(h=0; h<MAX_HEIGHT; h++){
for(i=0; i<MAX_WIDTH; i++){
if(pix[i][h] == POINT_EXIST){
fprintf(d_file, "1");
}
else{
fprintf(d_file, "0");
}
}
fprintf(d_file, "\r\n");
}
fclose(d_file);
#endif
return(ret);
}
おわり。いかがでしょうか?
0697デフォルトの名無しさん
2005/08/02(火) 12:25:31>>678
ありがとうございました。参考にさせていただきます。
0698デフォルトの名無しさん
2005/08/02(火) 14:21:14スレが読みにくくてたまらん。。
0699デフォルトの名無しさん
2005/08/02(火) 18:34:50行列のかけざん問題よく見かけるなぁ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/824.txt
0700デフォルトの名無しさん
2005/08/02(火) 20:46:17[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/826.txt
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年8月4日18:00まで
[5] その他の制限:なし
0701デフォルトの名無しさん
2005/08/02(火) 21:21:46(1).
int hash(char *name)
{
int h = 1;
while(*name != '\0'){
h *= (*name)%100;
}
return h%100;
}
(2).
名前の文字列の中に偶数値を持つバイトがあると
ハッシュ値が必ず偶数となり、ハッシュ値の出現に偏りが出る。
(3).
上記の問題から法とする数を奇数にすればよいと考えられる。
0702デフォルトの名無しさん
2005/08/02(火) 21:23:16[1] int h(const char * str) { return 0; }
[2] 確実に0が返ってしまう
[3] ハッシュ関数 : 各バイトを“終端文字を除いて”すべて掛け算し、その下2桁を採用する。
より良い性能を与えると思われる根拠 : 0以外も返るようになる。
0703デフォルトの名無しさん
2005/08/02(火) 21:59:150704デフォルトの名無しさん
2005/08/02(火) 23:14:50[2] 問題文(含コード&リンク):
●□□□□
□□□□□
□□□□□
□□□□□
□□□□□
1:← 2:→ 3:↑ 4:↓
キーボードで数値を入力した時、矢印方向に●が動くようなプログラムを作成せよ。
(□から出たら終わらせる)
[3] 環境
[3.1] OS:WindowsXP
[3.2] Microsoft Visual C++ .NET
[3.3] 言語:C
[4] 期限:8月3日まで
0705デフォルトの名無しさん
2005/08/02(火) 23:16:22指定どおりに動いたらはみ出す場合にはどうする?
0706デフォルトの名無しさん
2005/08/02(火) 23:17:58は?
0707デフォルトの名無しさん
2005/08/02(火) 23:24:430708704
2005/08/02(火) 23:25:23はみ出した場合は終了でいいです。
0709デフォルトの名無しさん
2005/08/02(火) 23:32:19了解
#include <stdio.h>
#define WIDTH (5)
#define HEIGHT (4)
int main(void) {
int x = 0, y = 0, i, j, c;
for (; ; ) {
for (i = 0; i < HEIGHT; i++) {
for (j = 0; j < WIDTH; j++) if (j == x && i == y) printf("●"); else printf("□");
printf("\n");
}
printf("1:← 2:→ 3:↑ 4:↓\n"); if (scanf("%d", &c) != 1) return 1;
switch (c) {
case 1: --x; break;
case 2: ++x; break;
case 3: --y; break;
case 4: ++y; break;
default: return 1;
}
if (x < 0 || WIDTH <= x || y < 0 || HEIGHT <= y) return 0;
}
}
0710704
2005/08/02(火) 23:44:44すいません
図形は下の行に書かずに上書きでお願いします。
0711デフォルトの名無しさん
2005/08/02(火) 23:54:010712デフォルトの名無しさん
2005/08/03(水) 00:10:22(2)
・文字の出現順は関係ないので、アナグラムしたものは同じハッシュ値を持つ。
・文字コードが100の倍数を含んでいるとき、常に0を返す
(3)
文字コードだけでなく、出現位置も利用してハッシュ値を生成する。
0713デフォルトの名無しさん
2005/08/03(水) 00:12:26画面消去のエスケープシーケンスってば↓だっけ? ためしてないけど。
"\x1B[0K"
0714デフォルトの名無しさん
2005/08/03(水) 00:18:01いいかげんな事を書くなボケ
0715デフォルトの名無しさん
2005/08/03(水) 03:08:03[1] 授業単元:
[2] 問題文(含コード&リンク):
キャラクタ(半角一文字)を動かすプログラムです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/829.txt
ここのコメントの中の処理お願いします。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Microsoft Visual C++ .NET
[3.3] 言語:C++
[4] 期限:2005年8月3日
[5] その他の制限:
0716715
2005/08/03(水) 03:16:470717OS
2005/08/03(水) 05:51:20[1] 授業単元:オペレーティングシステム
[3] 環境
[3.1] OS:Unix
[3.2] コンパイラ(バージョン): ちょっとわかりません
[3.3] 言語:C言語
[4] 期限:今年の8月10日までです。
問題文は
・マルチスレッドプログラミング
(1)簡単なスレッドプログラミング及びスレッドの動作について解説せよ。
(2)相互封鎖や相互実行が起こるプログラムを作成し、その動作を解説せよ。
(3)マルチスレッドで、turnやflagを使った排他制御のプログラムを作成し、その動作を解説せよ。
(4)消費者・生産者問題のプログラムを解説せよ。
・プロセス
(1)簡単なプロセスを使ったプログラミング及びプロセスの動作について解説せよ。
(2)スレッドとプロセスの違いを具体的な例を挙げて解説せよ。
(3)プロセス間通信で、turnやflagを使った排他制御のプログラムを作成せよ。
(4)2つのプロセスが共有変数を操作するプログラムを作成し、その動作を解説せよ。
・ライブラリ
(1)スレッドについてどのようなライブラリがあるか調査し、
簡単なプログラムを作成して、そのライブラリの使い方を解説せよ。
(2)プロセスについて、どのようなライブラリがあるか調査し、
簡単なプログラムを作成して、そのライブラリの使い方を解説せよ。
です。よろしくです。
0718717
2005/08/03(水) 06:17:560719デフォルトの名無しさん
2005/08/03(水) 07:42:44[2] 問題文(含コード&リンク):
問題文↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/835.lzh
ソース↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/834.txt
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年8月4日24:00まで
単位まじでやばいんでお願いです!
理由とかもできればお願いしますozl
0720デフォルトの名無しさん
2005/08/03(水) 10:28:440721デフォルトの名無しさん
2005/08/03(水) 10:32:15[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=837
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:2005年8月3日23:50まで
[5] その他の制限:
どなたかよろしくお願いします。
0722デフォルトの名無しさん
2005/08/03(水) 10:38:13test1_1.cには
#include <stdio.h>
#include "my_header.h"
とmain関数全体をそのまま書き写す。
my_func1.cには
#include "my_header.h"
#define NUM 100
とfunc1関数全体をそのまま書き写す。
my_header.hはint func1(int value);の一行。
0723721
2005/08/03(水) 10:59:52お答えいただき有難うございます。
ソースはこれで合っているのでしょうか?↓
#include <stdio.h>
#include "my_header.h"
int main(int argc,char **argv)
{
int input,output;
scanf("%d",&input);
output = func1(input);
printf("%d\n",output);
return 0;
}
#include "my_header.h"
#define NUM 100
int func1(int value)
{
int i,ans=0;
for(i=0;i<NUM;i++){
ans+=value;
}
return ans;
}
my_header.h
int func1(int value);
0725デフォルトの名無しさん
2005/08/03(水) 11:21:17見ず知らずの他人が置いたアーカイブを展開するなんて怖いことできないから却下。
問題文くらい自分で書き直すくらいのことしなさいよ。
0726デフォルトの名無しさん
2005/08/03(水) 11:22:49ここはプログラミングの宿題を片付けるスレ。
文章問題はスレ違い。
つーか、教科書ないのか?
0727デフォルトの名無しさん
2005/08/03(水) 11:41:34[2] 問題文(含コード&リンク):
STLであるSETを編集し(必ずファイルのバックアップを取るように注意してください)、
データの比較回数、データの移動回数(実際のデータ挿入、回転は別のものとし
てとカウントすること)を計測するコードを追加しなさい。
・ポイント
データの比較及び移動がどの部分で行われているかを考慮してください。
どのようにカウントしたデータを受け渡すべきか。grobalとして定義するべきか。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ(バージョン):Visual Studio C++.NET
[3.3] 言語:C++
[4] 期限:8月6日
詳細を訪ねたところ、
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\set
を(バックアップ後に)編集し、比較回数、移動回数をmainに渡すということで
した。どうかよろしくお願いします。
0728デフォルトの名無しさん
2005/08/03(水) 11:51:20アホかい。そこまでやることが指示されてて何もできないなら諦めた方がいいぞ。
つーか、他人の宿題のために自分の環境に手を入れるなんて酔狂なことしたかないぞ。
0729デフォルトの名無しさん
2005/08/03(水) 12:02:08ヒント:
(1)自明なので割愛
(2)Aでは探索に掛かる計算量が面積比例、Bでは毎回のスキャンの計算量が面積比例でスキャンの最大数は面積比例。
(3)Aはスタックが必要。Bは画像内に情報を持たせているので不要。
但し、画像内に情報を持たせることができないのなら、面積に比例したフラグの分メモリが必要になる。
どっちにしても、よりよいアルゴリズムを採用すべきw
#つーか、素晴らしく汚いコードだな。
0730デフォルトの名無しさん
2005/08/03(水) 12:47:08[2] 問題文(含コード&リンク):
ナイト巡回問題の解を求めるプログラムをより速くせよ。下がナイト巡回問題です
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=838
[3] 環境
[3.1] OS:VineLinux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:2005年8月4日24:00まで
すいませんがどなたかお願いいたします。
0731デフォルトの名無しさん
2005/08/03(水) 12:53:56#include<stdio.h>
int gcd( int m, int n );
int lcm( int m, int n );
int main(void)
{
int m,n,x,y;
while(1){
printf("(実数)\n");
scanf("%d%d",&m,&n);
if(m>2000000000||n>2000000000)
printf("ERROR\n");
else
break;
}
x=gcd(m,n);
y=lcm(m,n);
printf("\n%d\n",x);
printf("%d\n",y);
return 0;
}
0732731
2005/08/03(水) 12:54:33// 最大公約数(Greatest Common Divisor)を返す。
//*********************************************************
int gcd( int m, int n )
{
while( m != n )
{
if ( m > n ) m = m - n;
else n = n - m;
}
return m;
}
//*********************************************************
// 最小公倍数(Least Common Multiple)を返す。
//*********************************************************
int lcm( int m, int n )
{
return ((m / gcd(m, n)) * n);
}
このプログラムを最小公倍数が20億を超えないように、また、mainプログラムで入力したときにオーバーフローするかどうか判定するにはどうすればよろしいでしょうか??
よろしくお願いいたしますm(__)m
0733デフォルトの名無しさん
2005/08/03(水) 13:02:03あちこちに張るなボケ
0734デフォルトの名無しさん
2005/08/03(水) 13:03:17すみませんm(__)m
でも、結構切実です。m(__)m
0735デフォルトの名無しさん
2005/08/03(水) 13:07:08>でも、結構切実です。m(__)m
それがどうした?
0736デフォルトの名無しさん
2005/08/03(水) 14:14:22アク禁要請出そうか?
0737デフォルトの名無しさん
2005/08/03(水) 15:07:24藻前が切実であろうと漏れらには何の問題もない。うせろ。
0738デフォルトの名無しさん
2005/08/03(水) 15:16:24参考に ttp://www.kyoto-su.ac.jp/~yamada/ap/backtrack.html を読んでいるのだが、
枝刈りの方法が分らず、手がだせない。
小手先の高速化なら、一次元配列にしてしまうだとか、ifの順番を変えるとか。
ちょっと考えたのは、マスにナイトの動きで隣接するマスの数…
ああ、なに言ってるかわかんねぇ。
0739デフォルトの名無しさん
2005/08/03(水) 15:26:160740デフォルトの名無しさん
2005/08/03(水) 15:40:12Subject: 課題について
拝啓
おたくの学生が宿題を丸投げしています。
urlは……。
ところで、
上達するために、でコーディングスタイルを述べてらっしゃいますが、
#define MAX_INDEX;
ちゅーのはなんですか?
きちんとした言葉を使うを参考にされてください。
>>739 Kyoto Sangyo University だそーで。
0741デフォルトの名無しさん
2005/08/03(水) 16:12:59左上からスタートして、左上に帰ってくる順回路を求めているということに注目。
左上を 0,0 ( コード上では 2,2 ) とした場合、2,1 と 1,2 の両方が埋まってしまうと
左上に帰ってこれなくなるので、n < M * N-1 でかつboard[3][4]とboard[4][3]の
両方が非ゼロの場合は枝刈りして良し。
具体的には、例えばfindSolutionでcycle[0][0]=2;cycle[0][1]=2; board[2][2]=-1;
backtrace(board,cycle,1, 4, 3) とまず東南東へ飛んだところから開始して、
backtrack の頭で if (n<M*N-1 && board[3][4]<0) return; と帰還1歩前より前で
北北東の帰還路がふさがっている枝を刈る。
0742デフォルトの名無しさん
2005/08/03(水) 16:29:53前略
#define ABS(x) ((x)>0?x:-(x))
int isMovable(const int * start, const int * goal) {
return (ABS(goal[0] - start[0]) == 2 && ABS(goal[1] - start[1]) == 1) ||
(ABS(goal[1] - start[1]) == 2 && ABS(goal[0] - start[0]) == 1);
}
int printCycle(int cycle[M*N][2])
{
int i, j;
char board[M][N];
for (j = 0; !isMovable(cycle[j], cycle[M*N-1]) || !isMovable(cycle[j+1], cycle[0]); j++) if (j == M*N - 1) return 0;
for (i = 0; i <= j; i++) board[cycle[i][0]-2][cycle[i][1]-2] = i;
for (i = M*N - 1; i > j; i--) board[cycle[i][0]-2][cycle[i][1]-2] = j + (M*N - i);
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) printf(" %2d", board[i][j]);
puts("");
}
return 1;
}
void backtrack(int board[M+4][N+4], int cycle[M*N][2], int n, int i, int j)
{
if (n == M * N) {
if (printCycle(cycle))
exit(0);
後略
0743デフォルトの名無しさん
2005/08/03(水) 16:56:59参考になさってください。
0744デフォルトの名無しさん
2005/08/03(水) 17:10:58参考にされるような、言葉を使えるようになってくださいという意味だ。
0745デフォルトの名無しさん
2005/08/03(水) 22:22:22[2] 問題文(含コード&リンク):
コンソール上でキャラクタ(半角1文字)を動かす関数を作成する。
・縦だけに動く関数
・横だけに動く関数
・ランダムに動く関数
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): Microsoft Visual C++ .NET
[3.3] 言語:C++
[4] 期限:2005年8月3日(できるだけ早くお願いします)
[5] その他の制限: 特になし
0746デフォルトの名無しさん
2005/08/03(水) 22:56:40ということは、コンソールの制御を自前でやることになるわけで、激しく
環境依存になるし、main()の手前のスタートアップで勝手にコンソールの
初期化とかされたら困るからWinMain形式のソースになるわけで、すると
必然的にその「動かす関数」とやらだけでは済まなくなるわけだが、
どうすればいいんだ?
0747デフォルトの名無しさん
2005/08/03(水) 22:59:270748745
2005/08/03(水) 23:09:54main()の手前のスタートアップで勝手にコンソールの初期化はありません。
コンソール制御は
ヘッダーファイル
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/840.txt
ソース
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/839.txt
です。
0749デフォルトの名無しさん
2005/08/03(水) 23:28:210750デフォルトの名無しさん
2005/08/03(水) 23:53:370751デフォルトの名無しさん
2005/08/03(水) 23:53:440752ぼるじょあ ◆yBEncckFOU
2005/08/04(木) 00:31:580753フィボナッチ
2005/08/04(木) 01:01:4048くらいを超えるとint型では無理になりますよね?そこで配列と関数を使いたいのです。
c[0]には1の位、c[1]には2の位・・・といった感じで。
f = f1 + f2をフィボナッチとすると、
関数は、加算をする関数。
f2 = f1をする関数。
f1 = fをする関数。
出力する関数。
といった感じで作りたいのです。
あと、#includeは<stdio.h>のみで。
誰かわかる方はいらっしゃいませんか??
0754デフォルトの名無しさん
2005/08/04(木) 01:07:31フィボナッチに特化して考えずに、多桁演算ライブラリを作るような積もりで作るといいと思う。
で、1の位2の位って2進一桁を格納するんかい(苦笑)。
素直に10進1桁(or8桁)ずつ格納した方がよさそうな希ガス。
0755フィボナッチ
2005/08/04(木) 01:14:18とか「関数」と使うって条件は必須なんですよ(涙)
ただ48までのフィボナッチだったらなんてことなく書けるのですが配列を使うとなると
ぜんぜんわからないんです・・
0756フィボナッチ
2005/08/04(木) 01:16:230757デフォルトの名無しさん
2005/08/04(木) 02:04:17void ladd(int a[], int b[], int c[]) { /* a[] <- b[] + c[] */
int i, carry = 0;
for( i = 0 ; i < 100 ; i++ ) { /* 任意桁は面倒なので100桁以下と仮定する。 */
a[i]=b[i]+c[i]+carry;
if(a[i]>9){ carry = 1; a[i] -= 10; } else carry = 0;
}
}
0758デフォルトの名無しさん
2005/08/04(木) 02:08:57眠い。
0759デフォルトの名無しさん
2005/08/04(木) 02:15:47#define RADIX 10
#define COLUMN 50
int add(int a[], int b[], int c[])
{
int i, tmp, carry = 0;
for (i = 0; i < COLUMN; i++) {
tmp = b[i] + c[i] + carry;
a[i] = tmp % RADIX;
$nbsp; $nbsp; carry = tmp / RADIX;
}
return carry;
}
0760フィボナッチ
2005/08/04(木) 02:30:14間違えだらけなきがする・・・未熟でほんとうにごめんなさい。改行が多すぎるってエラー
が出ちゃったんで分割して書き込んでみます。
#include <stdio.h>
int a[0] = 0;
int b[0] = 0;
void outputC(void)
{
for(i = 0;i < 50;i++)
printf("%d", a[i]);
}
void copyBtoA(void)
{
c[i] = b[i];
}
void copyCtoB(void)
{
b[i] = a[i];
}
0761フィボナッチ
2005/08/04(木) 02:31:10{
c[i] = b[i];
}
void copyCtoB(void)
{
b[i] = a[i];
}
void addBCintoA(int a[], int b[], int c[])
{
int i, carry = 0;
for( i = 0 ; i < 50 ; i++ ) {
a[i] = b[i] + c[i] + carry;
if(a[i] > 9)
carry = 1; a[i] -= 10;
else
carry = 0;
}
}
0762フィボナッチ
2005/08/04(木) 02:32:11else
carry = 0;
}
}
void main(void)
{
printf("%d %d",a[0],b[0]);
for(i = 3;i < 199;i++) {
addABintoC();
copyBtoA();
copyCtoB();
outputC();
}
0763フィボナッチ
2005/08/04(木) 02:34:21ながくなっちゃいましたがこれで終わりです。
0764デフォルトの名無しさん
2005/08/04(木) 02:46:45思いどおりに動かないと言ってるわけでもないので、
動作はするんだろう。
いいじゃん、動けば。課題はそんな程度で出してOKよん。
0765フィボナッチ
2005/08/04(木) 03:28:40非常に助かりました!なんか2chって初めて使ったんですけど
書き込もうとするとなぜかエラーになることが多いですね。
0766デフォルトの名無しさん
2005/08/04(木) 04:42:50[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/841.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):すみませんわかりません。
[3.3] 言語:C
[4] 期限:8月5日16:00まで
[5] その他の制限
今年4月から学習しているヒヨッコ大学一年生です.
単元的にはfor文かwhile文使うみたいです。
二日間ほぼ徹夜状態で考えてもわからず困り果ててますorz
どうかよろしくお願いします。
0767デフォルトの名無しさん
2005/08/04(木) 05:06:550768766
2005/08/04(木) 05:33:253年になったら転学科しようかと思ってたりしてます。
そのためにも単位は落としてはいけないわけでして。
(もともと今の学科は第三志望でした。)
0769デフォルトの名無しさん
2005/08/04(木) 05:53:22理系に向いてないかもしれん。とは思うな。
0770デフォルトの名無しさん
2005/08/04(木) 05:57:420771デフォルトの名無しさん
2005/08/04(木) 06:17:43少なくとも短気でバカなおいらにプログラミングは荷が重すぎます。
同じ悩むなら電子工学系の問題で悩む方がよっぽど幸せです。
0772デフォルトの名無しさん
2005/08/04(木) 07:58:23つーか、その程度の問題文で一々アップローダにアクセスさせる神経が気に入らん。
0773デフォルトの名無しさん
2005/08/04(木) 09:56:05すみません、ちょっと図形が入っていたので
ウプローダーつかったほうがいいかなあと思いまして…。
演習のページに載ってある内容で試しても
自分ではどうにもうまくいかないんですよ。
ググッてみても今の自分にはわからない事が使われていたりして
チンプンカンプンだったりしてどうにも…。
0774デフォルトの名無しさん
2005/08/04(木) 10:29:08親心ですか?
>>766
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/842.c
0775デフォルトの名無しさん
2005/08/04(木) 10:58:40■ ■ 違う板にコピペすると、四角の枠の中に
■ ■ メッセージとURLが現れる不思議な絵。
■ ■
■ ■ (その仕組みがリンク先に書いてある)
■ ■
■ ■ この原理を応用すると、まったく新しい
■ ■ コピペが作れる予感。
■■■■■■■■■■■■■■■■
0776デフォルトの名無しさん
2005/08/04(木) 11:11:300777デフォルトの名無しさん
2005/08/04(木) 12:20:54>774の置き換え
#つまらぬものを作ってしまった..._|⌒iO
0778デフォルトの名無しさん
2005/08/04(木) 12:46:35[2] 問題文(含コード&リンク):
与えられた有向グラフGに対し,強連結成分を求めるプログラムを作りなさい(言語は何でも良い)
ただし,Gの入力は以下の形式に記述されたテキストファイルによるものとする:
Gの頂点数
Gの隣接行列
たとえば、次は頂点数が4のグラフの例である.
4
0 1 −1 0
−1 0 1 −1
1 −1 0 −1
0 1 1 0
また,出力は各強連結成分について,含まれる頂点を1行に書き出すこと.
たとえば,上の例のグラフの場合,出力は以下のようになる:
component 1: 4
component 2: 1 2 3
[3] 環境
[3.1] OS:WindowsXP
[3.2] Borland
[3.3] どちらでも可
[4] 期限:8月10日まで
おねがいします
0779デフォルトの名無しさん
2005/08/04(木) 12:47:58マルチか。氏ねよ。
0780デフォルトの名無しさん
2005/08/04(木) 12:48:08向こうで謝っとけ
0781デフォルトの名無しさん
2005/08/04(木) 12:53:570782デフォルトの名無しさん
2005/08/04(木) 13:47:38[2] RPGにおけるアイテムの売買のフローチャート
[3] 環境
[3.1] OS:Windows/
[3.2] VisualStudio(2003):
[3.3] 言語:C
[4] 期限:8月4日 15:30迄 無理なら今日中
[5] その他の制限:ポインタまで
てかフローチャートっておkなのかな?
ちょっとあいまいですけど基本的な部分だけでいいのでおねがいします。
0783デフォルトの名無しさん
2005/08/04(木) 13:49:460784デフォルトの名無しさん
2005/08/04(木) 13:51:140785デフォルトの名無しさん
2005/08/04(木) 13:52:46と言いたいけどスレ汚しスマソ ノシ
0788デフォルトの名無しさん
2005/08/04(木) 16:55:10digraph { 1->1; }
とか、
digraph { 1->2; 2->1; }
が表現できんのですが。
ちょっと気になったので、調べた。
ttp://kanaya.aist-nara.ac.jp/Zope/member/nishio/japanese/memo/ComparativeProgramming/lec05
0789OS ◆hCRkzTKxdQ
2005/08/04(木) 17:45:59(4)flagやturnを使い、排他制御を行い、2つのプロセスが共有変数を操作するプログラムを作成しせよ。
ひとつだけ問題がわかりません。
[1] 授業単元:オペレーティングシステム
[3] 環境
[3.1] OS:Unix
[3.2] コンパイラ(バージョン): ちょっとわかりません
[3.3] 言語:C言語
[4] 期限:今年の8月10日までです。
[5] 問題;flagやturnを使い、排他制御を行い、2つのプロセスが共有変数を操作するプログラムを作成しせよ。
です。わかる方いたら是非お願いします。
0790デフォルトの名無しさん
2005/08/04(木) 19:17:36ttp://www.ncad.co.jp/~komata/c-kouza13.htm
0791766
2005/08/04(木) 21:24:40さっそくの解答本当にありがとうございました。
習ってないものが使われてるみたいで自分にとっては
難しいですがなんとか理解したいと思いますm(__)m
0792デフォルトの名無しさん
2005/08/04(木) 21:53:25書き逃げのチキン鮮人野郎?
CもC++も知らないくせにスレだけ立てるってやつか?
0793デフォルトの名無しさん
2005/08/04(木) 22:16:21何度か回答側にまわった事はあるが、バカまるだし頓珍漢ばかりなシロモノだった
0794デフォルトの名無しさん
2005/08/04(木) 22:35:240795デフォルトの名無しさん
2005/08/04(木) 22:36:050796ぼるじょあ ◆yBEncckFOU
2005/08/04(木) 22:45:56ぼるじょあ◆yBEncckFOU は共同体で連続体で群生体だから
無限の知識と無尽蔵の体力を持ってるんだYO!
(・3・)アルェー こっちが嫌になるほど質問しろYO!
雑談したり答えたりする人は、みんなぼるじょあ◆yBEncckFOUだYO!
ぼるじょあ◆yBEncckFOUはコテハンじゃないYO!
名前欄に「ぼるじょあ#ぶるじょあ」で、キミも今日からぼるじょあ◆yBEncckFOUだYO!
(・3・)エェー 最近ぼるじょあ不足だからドンドン書き込んでNE!
0797デフォルトの名無しさん
2005/08/04(木) 22:49:20ややこしくなるからやめろ
0799デフォルトの名無しさん
2005/08/04(木) 22:52:41お前の低脳を他人のせいにするな。
0801デフォルトの名無しさん
2005/08/05(金) 09:19:28時代は内藤ホライゾンだよ
内藤ホライゾンがC/C++の宿題を片付けます 49
http://pc8.2ch.net/test/read.cgi/tech/1122705615/
0802デフォルトの名無しさん
2005/08/05(金) 10:51:370803デフォルトの名無しさん
2005/08/05(金) 11:17:57どうすればいいですか?
0807デフォルトの名無しさん
2005/08/05(金) 12:57:540808ぼるじょあ ◆yBEncckFOU
2005/08/05(金) 13:04:180809ぼるじょあ ◆yBEncckFOU
2005/08/05(金) 13:46:270811ぼるじょあ ◆yBEncckFOU
2005/08/05(金) 19:49:10(・3・)エェーC++だったらboost::regexを使うといいYO!でも、日本語を
扱うならワイド文字列にしなくちゃダメだNE!
0812デフォルトの名無しさん
2005/08/05(金) 23:03:26[2] 問題文(含コード&リンク):
(1)指定した2点間に線分を描く関数を作成せよ。引数は始点のX座標とY座標、終点のX座標とY座標、色番号の5つとする。
(2)次に、その関数を使って「H.K」「E.T」「M.S」「M.W」という文字を線で描画せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):不明
[3.3] 言語:どちらでも可(Cで出来ればなるべくそちらでお願いします)
[4] 期限:2005年8月10日15:00まで
2つあるのですが、よろしくお願いいたします。
0813デフォルトの名無しさん
2005/08/05(金) 23:17:43GDI使っていいならLineToなり使って・・・
使っちゃいけないなら点は何で打つの?
0814ぼるじょあ ◆yBEncckFOU
2005/08/05(金) 23:19:21(・3・)エェー Cには線を引く機能はないし標準ライブラリにもそんな関数存在しないYO!
だから画像描画系の宿題はライブラリの指定があるとうれしいYO!
もう片方の言語がわからないけどそっちの方が最適かもしれないNE!
0815デフォルトの名無しさん
2005/08/05(金) 23:25:190816デフォルトの名無しさん
2005/08/05(金) 23:46:24テンプレ読め。そうでなくてもこのスレなんだからC++って想像くらいできるだろ。
0818デフォルトの名無しさん
2005/08/05(金) 23:57:16(・3・)エェー C++にも線を引く機能はないYO!
0819ぼるじょあ ◆yBEncckFOU
2005/08/05(金) 23:58:340820812
2005/08/06(土) 00:15:40その条件さえ満たしていれば何使ってもいいと思うんですけど
0821デフォルトの名無しさん
2005/08/06(土) 00:18:490823デフォルトの名無しさん
2005/08/06(土) 00:41:26>>813へのレスジャマイカ?
0825ぼるじょあ ◆yBEncckFOU
2005/08/06(土) 01:06:260826デフォルトの名無しさん
2005/08/06(土) 01:07:150827ぼるじょあ ◆yBEncckFOU
2005/08/06(土) 01:15:440828ぼるじょあ ◆yBEncckFOU
2005/08/06(土) 01:35:05http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/845.txt
あとはdraw_all()の中を勝手に変えて文字でも何でも書いてNE!
0829ぼるじょあ ◆yBEncckFOU
2005/08/06(土) 02:00:070830デフォルトの名無しさん
2005/08/06(土) 03:21:590831デフォルトの名無しさん
2005/08/06(土) 11:12:15ぼるじょあヤバイ。
まず質問を聞いてあげるYO♪。もう質問を聞いてあげるYO♪なんてもんじゃない。超質問を聞いてあげるYO♪。
質問を聞いてあげるYO♪とかっても
「いつならいいの?」
とか、もう、そういうレベルじゃない。
何しろ24時間、いつでも質問オッケー。スゲェ!なんか時間に制限とか無いの。無限の知識とか無尽蔵の体力とかを超越してる。
名前欄に「ぼるじょあ#ぶるじょあ」って書けばキミも今日からぼるじょあ◆ySd1dMH5Gkだしなんでも質問を聞いてあげるYO♪。
しかもいつだって全力投球らしい。ヤバイよ、いつだって全力投球だよ。
だって普通はコテハンとか共有しないじゃん。だって自分のコテハンが人に使われたら困るじゃん。騙りとか煽りとか困るっしょ。
自分のコテハン使われて、マジレスしてたのに、他人に「ウンコ」とか書かれたら泣くっしょ。
だからトリップとか公開しない。話のわかるヤツだ。
けどぼるじょあはヤバイ。そんなの気にしない。公開しまくり。>>1とか見れば誰でもぼるじょあ。ヤバすぎ。
24時間、いつでも質問オッケーって言ったけど、もしかしたら寝てるときもあるかもしんない。でも寝てるときもあるって事にすると
「じゃあ、ぼるじょあの共同体で連続体で群生体ってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと超自作自演。IDが出ない。専門用語で言うと(・∀・)ジサクジエンデシタ。ヤバイ。自作自演しすぎ。他人がレスする暇もなく自演。怖い。
それに超雑談。超マターリ。そのくせ超進行速い。次スレとか1日で立ってくる。偉大なる軌跡て。革命家でも言わねぇよ、最近。
なんつってもぼるじょあはAAが凄い。コピペとか平気だし。
うちらなんてAAとかたかだかモナー板で出てきただけで上手く扱えないから職人さんを待ったり、
作成依頼スレに置いてみたり、AAエディター使ったりするのに、
ぼるじょあは全然平気。モナーの顔を・3・のまま扱ってる。凄い。ヤバイ。
とにかく貴様ら、ぼるじょあのヤバさをもっと知るべきだと思います。
そんなヤバイぼるじょあスレに出て来た「油デブ」とか「よゐこ」超偉い。もっとがんばれ。超がんばれ。
0832七七四
2005/08/06(土) 12:05:57[3-1]os:windowsXP [3-2]visualC? [3-3]C言語 [4]期限:できるだけはやくでお願いします。
0833デフォルトの名無しさん
2005/08/06(土) 12:07:23http://pc8.2ch.net/test/read.cgi/tech/1123268208/
オマエか?このクソスレ立てたのは
削除依頼は出したのか?
0834デフォルトの名無しさん
2005/08/06(土) 12:23:420835デフォルトの名無しさん
2005/08/06(土) 12:34:18在日は本国に帰ったら?
0836デフォルトの名無しさん
2005/08/06(土) 14:14:59#include <string.h>
#include <stdio.h>
int strchknum(const char * t, const char * s, int * n) {
int i;
const char * const p = t;
for (i = 0; (t = strstr(t, s)) != NULL; ++t, ++i)
n[i] = t - p;
return i;
}
int main(void) {
const char * const t = "abababacbabbab";
const char * const s = "ab";
int n[256], n2, i;
n2 = strchknum(t, s, n);
printf("出現回数: %d\n出現位置:", n2);
for (i = 0; i < n2; ++i) printf(" %d", n[i]);
putchar('\n');
return 0;
}
0837812
2005/08/06(土) 15:46:37http://web.drive.ne.jp/1/html/VIP00946.html
これをなおすにはどうしたらいいのでしょうか?
0839デフォルトの名無しさん
2005/08/06(土) 16:39:45名前のない引き数がエラーになるのはC言語の制約。
>828はC++を前提としたのだろう。
したがって、ファイル名を*.cではなく*.cppとすればエラーではなくなし、最後の警告も消える。
どうしてもCとしてコンパイルしたいなら、適当な名前を補い、最後の警告は無視しろ。
0840デフォルトの名無しさん
2005/08/06(土) 16:40:25頓珍漢なレスをするな。
0842デフォルトの名無しさん
2005/08/06(土) 16:50:24それでは「WinMainでぐぐ」って>>837のエラーをなおすためにどう役立てたのか教えてください。
0843デフォルトの名無しさん
2005/08/06(土) 16:54:02ポカーン
あんたぼるじょあより低レベル?
0844デフォルトの名無しさん
2005/08/06(土) 16:56:220846デフォルトの名無しさん
2005/08/06(土) 17:03:34別に、
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE foo, LPSTR bar, int baz) {
でいいのだけれど。
0847デフォルトの名無しさん
2005/08/06(土) 17:06:250848デフォルトの名無しさん
2005/08/06(土) 17:28:440849デフォルトの名無しさん
2005/08/06(土) 17:35:41↓今度はError: 外部シンボル '_main' が未解決というエラーが出てコンパイルされません
↓これをなおすにはどうしたらいいのでしょうか?
↓
0850ぼるじょあ ◆yBEncckFOU
2005/08/06(土) 17:37:53│ ≡ ( ( ( (・3・)
│≡ 〜( ( ( ( 〜)
│ ≡ ノノノノ ノ サッ
↓
0851ぼるじょあ ◆yBEncckFOU
2005/08/06(土) 17:50:010852デフォルトの名無しさん
2005/08/06(土) 21:02:010853>>828のぼるじょあ ◆yBEncckFOU
2005/08/06(土) 22:21:49(・3・)エェー 訂正したYO!
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/846.c
0854デフォルトの名無しさん
2005/08/06(土) 22:26:480856デフォルトの名無しさん
2005/08/06(土) 22:48:03・・・とおもったら内容見たら馬鹿解答だから問題は無いようだ
本人真面目に答えてるつもりならネタ通り越して寒すぎる所だがな
0857デフォルトの名無しさん
2005/08/06(土) 22:55:43おまえ、流れ読めてないだろ。
0858デフォルトの名無しさん
2005/08/06(土) 23:12:021行目と2行目以降のトリップが違う…
0859606です
2005/08/07(日) 00:44:56↑のロジックを変更し、前回のC:\野球の内容をクリアしないようにするにはどこをどう変更したらよいでしょうか?
0860606です
2005/08/07(日) 00:47:17>>606
↑に問題があります。
0861デフォルトの名無しさん
2005/08/07(日) 00:48:49追記したいってこと? それなら"w"の代わりに"a"を指定。
0862デフォルトの名無しさん
2005/08/07(日) 00:52:34main()でのwhileの前にファイルをリストに読み込む処理を追加すればいいと思う。
>>861
ファイルの内容を並び替えたりしなくちゃいけないから、多分ファイルに追記というよりも
リストそのものに追加ということだとオモタ。
0863デフォルトの名無しさん
2005/08/07(日) 01:32:27[2] 問題文(含コード&リンク):
駅の電光掲示板をC言語によって表現せよ。ただし、2行目は30秒後に文字が流れるように設定すること。
こんな感じ↓
tp://curiosat.jpn.org/atos1/led/images/led_led3_nos1l.jpg
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン):Borland
[3.3] 言語:C言語
[4] 期限:2005年8月8日17:00まで
0864デフォルトの名無しさん
2005/08/07(日) 01:40:20だーかーらー
描画ライブラリくらい指定しろっての
0865デフォルトの名無しさん
2005/08/07(日) 01:42:030866デフォルトの名無しさん
2005/08/07(日) 01:43:47じゃあお前がさっさと答えろよ
0867デフォルトの名無しさん
2005/08/07(日) 01:44:400868デフォルトの名無しさん
2005/08/07(日) 01:46:030869デフォルトの名無しさん
2005/08/07(日) 01:50:060870デフォルトの名無しさん
2005/08/07(日) 01:50:35マダー? チンチン
0871863
2005/08/07(日) 02:28:480872デフォルトの名無しさん
2005/08/07(日) 02:34:440873デフォルトの名無しさん
2005/08/07(日) 02:48:11ほらよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/848.txt
動き出すまで30秒は長すぎるから5秒にしてある。
この時間を変更したかったら、最初のほうで定義している START_DELAY
の値を変更しろ。単位は秒。
0874606、859です
2005/08/07(日) 03:13:450875デフォルトの名無しさん
2005/08/07(日) 05:18:26ロジックは>>862で修正したが。コードがほしいのかい?
0876606、875です
2005/08/07(日) 08:52:55はい。コードをいただけますか?>>862を参考に自分なりに書いてみたんですけど、
同一背番号のときに上書きせず追加登録になってしまったり、何やらかんやらで・・・。
0877デフォルトの名無しさん
2005/08/07(日) 11:29:39OSがWindowsって書いてあるんだからWindowsのAPIを利用するのが一番親切だと思う。
0878デフォルトの名無しさん
2005/08/07(日) 15:17:55こんなのをwhileの前に突っ込んでもダメ?試してないけど。
/* ファイルを読む */
void ReadFromFile() {
Person person;
FILE* stream = fopen(OUTPUT_PATH,"r");
if (stream) {
while (fprintf(stream,"%d\t%s\t%s\n",&person.number,
&person.name,
&person.position) == 3)
SetMember(&person);
fclose(stream);
}
}
0879デフォルトの名無しさん
2005/08/07(日) 16:32:530880デフォルトの名無しさん
2005/08/07(日) 16:57:34とりあえず>>863が帰ってくる前にさりげなく
つ [printf("<marquee (ry]
0881ぼるじょあ ◆yBEncckFOU
2005/08/07(日) 18:26:340882デフォルトの名無しさん
2005/08/07(日) 18:59:450883デフォルトの名無しさん
2005/08/07(日) 19:12:29お前が相手にするからうれしいんだろ
0884デフォルトの名無しさん
2005/08/07(日) 19:40:260885デフォルトの名無しさん
2005/08/07(日) 20:24:49[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/851.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:8/8 20時まで
[5] その他の制限:無し
どうかお願いします。
0886606、875です
2005/08/07(日) 21:59:38試してみたんですけど駄目でした。
関数の呼び方が悪いのでしょうか?
できれば、関数を突っ込んだすべてのコードをUPしていただけると
ありがたいのですが。。。すみませんお願いします。
0887デフォルトの名無しさん
2005/08/07(日) 22:41:10それはどうすればできますか?ウィンドウクラスの登録とかの時に
Iconの設定を変えればかわるのはわかってるんですがウィンドウを作成
しない場合はどうすればできますか?
現在int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, char *CmdLine, int CmdShow)
の中ですぐにtxtよみこんでいろいろしててウィンドウを作る理由がありません。
そういった場合はどうすればできますか?
どなたか教えていただければ幸いです
)
0888デフォルトの名無しさん
2005/08/07(日) 22:42:370891デフォルトの名無しさん
2005/08/07(日) 23:39:420892デフォルトの名無しさん
2005/08/07(日) 23:42:480893デフォルトの名無しさん
2005/08/07(日) 23:55:56もうマンドクセ
0894デフォルトの名無しさん
2005/08/07(日) 23:56:40100レスほどで内藤ホライゾンな訳だが
0895デフォルトの名無しさん
2005/08/08(月) 00:39:09画像とか読み込み関数とかって全部自前?
画像形式の指定とかないの?
0896>886
2005/08/08(月) 02:15:58while("終わり"になるまで)
配列<もしくはリスト>に背番号、名前の入力操作を行う
配列<もしくはリスト>から野球.txtに"消去"以外のものを書き出す
ってだけだ
0897デフォルトの名無しさん
2005/08/08(月) 10:42:00> >>885
> 画像とか読み込み関数とかって全部自前?
はいそうです。
> 画像形式の指定とかないの?
画像形式の指定はR,G,Bがそれぞれ1バイトで表現されているデータということでした。
.rgbファイルです。
追記ですが、ロイドアルゴリズムを用いてコードブックを作るとありますが、
最悪の場合、データからランダムに代表ベクトルを選出したコードブックでもいいので誰か
お願いできませんか。ぜひお願いします。
0898デフォルトの名無しさん
2005/08/08(月) 14:14:02禿ワロスww
『誰が為に鐘はなる』
0899863
2005/08/08(月) 14:46:29>>879さんの言う通りで、できればそのまんま表現していただきたいです
なんとか明日くらいまでには出来ませんでしょうか?
0900デフォルトの名無しさん
2005/08/08(月) 14:51:21お前の書き込みはどれだ?番号で言ってくれ
0902デフォルトの名無しさん
2005/08/08(月) 16:24:21こちらからの質問は無視という事か
よくわかった
0904デフォルトの名無しさん
2005/08/08(月) 16:29:56気分のいいものじゃないな。
0905デフォルトの名無しさん
2005/08/08(月) 16:33:30時間をかけて作ったコード出してもらっておいて、そいつを無視かよ!!!
0906デフォルトの名無しさん
2005/08/08(月) 16:53:540907デフォルトの名無しさん
2005/08/08(月) 17:05:38性欲をもてあます
0908デフォルトの名無しさん
2005/08/08(月) 17:25:400909デフォルトの名無しさん
2005/08/08(月) 19:12:180910デフォルトの名無しさん
2005/08/08(月) 19:53:320911デフォルトの名無しさん
2005/08/09(火) 02:46:04[2] 問題文(含コード&リンク):
Cプログラムからすべてのコメントを除去するプログラムを書け。
引用符で囲まれた文字列や文字定数を正しく扱うことを忘れないこと。
Cのコメントは入れ子になっていない。
[3] 環境
[3.1] OS: Windows / Linux
[3.2] コンパイラ(バージョン): LSI C / gcc
[3.3] 言語:ANSI C
[4] 期限:2005年08月10日
[5] その他の制限:どこまで習っているか、等々
0912デフォルトの名無しさん
2005/08/09(火) 06:34:37ケータイで書いてたら意味不明になってしまった。(+_+)
#include<stdio.h>
int unko(){
int c=fgetc(stdin);fputc(c,stdout);return c;}
int main(void){int c;
while(1) {
c=fgetc(stdin);
if(c==EOF)break;
if(c=='"'){
fputc(c,stdin);
while(1) {c=unko();
if(c=='\\') fgetc(stdin);
else if(c=='"') break;}continue;}if(c=='\''){
fputc(c,stdout);
c=unko();
if(c=='\\') unko();unko();
}if(c=='/') {
c=fgetc(stdin);
if(c=='/'){while(c==EOF||c=='\n'||c=='\r')c=fgetc(stdin);
if(c!=EOF)fputc(c,stdout);continue;}if(c=='*'){
while(1){while(c!='*')c=fgetc(stdin);c=fgetc(stdin);
if(c=='/')break;
}}fputc('/',stdout);fputc(c,stdout);
}}
return 0;
}
0913デフォルトの名無しさん
2005/08/09(火) 07:24:04書いたので一応うpしておこう。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/852.txt
0915デフォルトの名無しさん
2005/08/09(火) 09:36:38>引用符で囲まれた文字列や文字定数を正しく扱うことを忘れないこと。
がちゃんと処理されていないようですが。
0917913
2005/08/09(火) 10:16:39http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/853.txt
コードくそ汚いな・・・
0918デフォルトの名無しさん
2005/08/09(火) 14:40:43[2] f(x)=4・x-x・e^(2x)+2=0の根をニュートン・ラフソン法で求めよ。ただし初期値 x1=1 収束判定定数ε=0.00001 とする。
ガウスの単純消去法、ガウスの消去法、改頂コレスキー法、LU分解法のどれかにより次の連立一次方程式の解を求めろ。
│623│ │6│
│234│(x) = │9 │
│347│ │15│
θ=0°、10°、20°、30°、40°〜90°までのsinθの値を与え、線形、ラグランジュ、ニュートン、スプラインのどれかの補間法によりθ=5,15,・・・・・85 °における値を補間して誤差を求めろ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):borland C/C++ 5.5
[3.3] 言語:C/C++どちらでも可
[4] 8月15日
[5] その他の制限:あまりない
3問あります。友達もみんなできません。全員であきらめる前に皆様に頼りに来ました。お願いします。
0919デフォルトの名無しさん
2005/08/09(火) 14:43:11│623│ │6 │
│234│(x)= │9 │
│347│ │15 │
0920デフォルトの名無しさん
2005/08/09(火) 14:44:113行3列X(x) = 3行1列
です。
0921デフォルトの名無しさん
2005/08/09(火) 15:30:08とりあえず1問目
double newton_raphson(double x, double (* f)(double), double (* fprime)(double))
{
const double e = 0.00001;
double next = x - f(x) / fprime(x);
if (std::fabs(next - x) <= e) return next;
return newton_raphson(next, f, fprime);
}
double f(double x)
{
return 4 * x - x * std::exp(2 * x) + 2;
}
double fprime(double x)
{
return 4 - (1 + 2 * x) * std::exp(2 * x);
}
0922デフォルトの名無しさん
2005/08/09(火) 15:31:49double x = newton_raphson(1, f, fprime);
std::cout << "x = " << x << std::endl << std::endl;
0923デフォルトの名無しさん
2005/08/09(火) 15:40:002問目ぐぐった
http://www.geocities.jp/supermisosan/gauss.html
数字だけ変えればいけそう
0924デフォルトの名無しさん
2005/08/09(火) 15:59:223問目。ラグランジュ補間法による。
#include <stdio.h>
double lagrange_interpolation(double* data, unsigned int n, double x) {
int i, j;
double result = 0., temp;
for (i = 0; i < n; ++i) {
temp = 1.0;
for (j = 0; j < n; ++j)
temp *= (i == j ? 1 : (x - j) / (i - j));
result += data[i] * temp;
}
return result;
}
int main(void) {
double data[] = {0., 0.17364817766693033, 0.3420201433256687, 0.5, 0.6427876096865393, 0.766044443118978, 0.8660254037844386, 0.9396926207859083, 0.984807753012208, 1.};
int i;
const unsigned int n = sizeof(data) / sizeof(data[0]);
for (i = 5; i <= 85; i += 10)
printf("sin%d°≒%f\n", i, lagrange_interpolation(data, n, i / 10.));
}
0925デフォルトの名無しさん
2005/08/09(火) 16:43:58感謝感激です 本当にありがとうございます 3番はそのままコンパイルが通りました。
1番なのですが、
#include<stdio.h>
#include<math.h>
double main(double x = newton_raphson(1, f, fprime);
std::cout << "x = " << x << std::endl << std::endl; )
{
double newton_raphson(double x, double (* f)(double), double (* fprime)(double)) ;
{
const double e = 0.00001;
double next = x - f(x) / fprime(x);
if (std::fabs(next - x) <= e) return next;
return newton_raphson(next, f, fprime);
}
double f(double x)
{
return 4 * x - x * std::exp(2 * x) + 2;
}
double fprime(double x) ;
{
return 4 - (1 + 2 * x) * std::exp(2 * x);
}
return 0;
}
そのまま通らなかったのでいろいろいじったけどなんかエラーが三つでるのです。もしよければアドバイスおねがいします。
エラー E2293 suutikaiseki1.c 4: ) が必要
エラー E2141 suutikaiseki1.c 5: 宣言の構文エラー
エラー E2040 suutikaiseki1.c 5: 宣言が正しく終了していない
0926デフォルトの名無しさん
2005/08/09(火) 17:03:23main内って、仮引き数リスト内にコード書くなんて思いもつかなかったぜ。
>>925
楽しいネタをありがとよ。
0928921
2005/08/09(火) 17:27:38#include <iostream>
#include <cmath>
int main()
{
std::cout << "x = " << newton_raphson(1, f, fprime) << std::endl;
return 0;
}
っていうか実はCで書けって話だった?
その場合は
#include <stdio.h>
#include <math.h>
int main() { printf("x = %f\n", newton_raphson(1, f, fprime)); return 0; }
あとは std:: を全て削除で。
0929デフォルトの名無しさん
2005/08/09(火) 17:48:57#include <iostream>
#include <cmath>
int main()
{
std::cout << "x = " << newton_raphson(1, f, fprime) << std::endl;
return 0;
}
double newton_raphson(double x, double (* f)(double), double (* fprime)(double))
{
const double e = 0.00001;
double next = x - f(x) / fprime(x);
if (std::fabs(next - x) <= e) return next;
return newton_raphson(next, f, fprime);
}
double f(double x)
{
return 4 * x - x * std::exp(2 * x) + 2;
}
double fprime(double x)
{
return 4 - (1 + 2 * x) * std::exp(2 * x);
}
致命的エラー F1003 c:\Borland\Bcc55\include\stdcomp.h 5: error 指令: Must use C+
+ for STDCOMP.H
なんどもすいません。致命的なエラーが一つです。後期からはしっかり反省して勉強したいです(;・Д・)
0930デフォルトの名無しさん
2005/08/09(火) 17:50:373年の数値解析学からぜんぜんついていってないんですorz。
レポートだけの授業なんでレポートをだせば単位は取れるらしいです。必修ではないけどなんとかしなければ。
0931デフォルトの名無しさん
2005/08/09(火) 18:00:28まさか、ファイル末尾が".c"だったりしないだろうな。
0932デフォルトの名無しさん
2005/08/09(火) 18:10:32拡張子をcからcppにしましたこっそり。それでもエラーみっつです。orz
エラー E2268 suutikaiseki1.cpp 5: 未定義の関数 'newton_raphson' を呼び出した(関
数 main() )
エラー E2451 suutikaiseki1.cpp 5: 未定義のシンボル f(関数 main() )
エラー E2451 suutikaiseki1.cpp 5: 未定義のシンボル fprime(関数 main() )
*** 3 errors in Compile ***
0933デフォルトの名無しさん
2005/08/09(火) 18:15:34関数の順番をfとfprime→newton_raphson→mainの順にしろ。(fとfprimeは順不同)
関数を呼ぶ前までに呼び出す関数が見つかっていなければならないから。
0934デフォルトの名無しさん
2005/08/09(火) 18:27:39関数の順番を変えるというのが私にはわからないです。馬鹿ですいませんorz
0935デフォルトの名無しさん
2005/08/09(火) 18:29:39コンパイラの気持ちになればわかる
0936918
2005/08/09(火) 18:37:38短い間でしたがいろいろアドバイスくれた人に感謝します。
いままでずっと放置だったのに、せっかくやろうとしてるので、締め切りまで頑張ってみたいと思います。
本当に僕みたいなのでも助けてくれようとする人がいて感動しました(;´Д`)
今日はありがとうございました。また明日くるかもしれないです。
0937デフォルトの名無しさん
2005/08/09(火) 18:42:592行目と3行目の間(includeの直後・mainの直前)に以下の3行を挿入してくれ。
double newton_raphson(double x, double (* f)(double), double (* fprime)(double));
double f(double x);
double fprime(double x);
これは>>933の方法とは別の方法だけど。
あと、エラーの意味もちょっとは考えてみそ(上達したいのなら)。
5行目でエラーでてるわけだけど、それより上の部分(1〜4行目)には
newton_raphson とか f とか fprime とか一度も登場してないでしょ。
だからコンパイラ様にとっては5行目の時点では未定義なの。
コンパイラ様にきちんとわかってもらうために上記の方法か>>933の方法のどちらかを使う。
0938デフォルトの名無しさん
2005/08/09(火) 20:44:25[2] 問題文(含コード&リンク):
カレンダー表示プログラムの作成。
実行ファイル名はcalenとし、
コマンドライン上でcalenとタイプすれば現時点での月のカレンダーが表示される。
「calen 2 2005」のようにタイプすると2005年の2月のカレンダーが表示されるように、月と年を指定できるようにする。
1900〜2100年までの1から12月までを表示範囲とし、それ以外の年月が指定された場合標準エラー出力でエラーを出す。
例えば実行ファイル名を間違えa.exeとタイプした場合も、「Usage: a <month> <year>」などのようにファイル名の対応もさせる。
月を指定せずに年だけ指定するとその年の1月から12月までのカレンダーを表示する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ(バージョン): gcc
[3.3] 言語:C
[4] 期限:2005年8月10日まで
[5] その他の制限:うるう年や曜日の出力に注意
0939デフォルトの名無しさん
2005/08/09(火) 21:30:45不可能だな。
0940デフォルトの名無しさん
2005/08/09(火) 21:34:500941デフォルトの名無しさん
2005/08/09(火) 21:56:130942デフォルトの名無しさん
2005/08/09(火) 21:58:560943デフォルトの名無しさん
2005/08/09(火) 21:59:140944デフォルトの名無しさん
2005/08/09(火) 21:59:410945デフォルトの名無しさん
2005/08/09(火) 22:08:58ざっとやってみた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/854.txt
0946938
2005/08/09(火) 22:11:23コマンドライン引数が間違ってたときのエラーです。
混乱させてしまったようで申し訳ないです。
0947デフォルトの名無しさん
2005/08/09(火) 22:15:260949938
2005/08/09(火) 23:08:04ポインタにうまく流れ込んでないんでしょうか??
0950938
2005/08/09(火) 23:10:48ってでるわけなんですが、この場合は必要なかったような気がするんですが、なんでこんなエラーがでるんでしょう?
0951938
2005/08/09(火) 23:13:390952デフォルトの名無しさん
2005/08/09(火) 23:13:57time_t t = time(NULL);
tm* ltime = localtime(&t);
ってしてる?
0953938
2005/08/09(火) 23:19:27struct tm *ltime;
time_t t = time(NULL);
にしたら通りました。
>>952の方法だと何故かエラー
0954デフォルトの名無しさん
2005/08/09(火) 23:39:410955デフォルトの名無しさん
2005/08/09(火) 23:41:33ここを使うしかないでしょう。
内藤ホライゾンがC/C++の宿題を片付けます 49
http://pc8.2ch.net/test/read.cgi/tech/1122705615/
0956デフォルトの名無しさん
2005/08/09(火) 23:51:55そのセンスはさすがだな。
どうやって、そんなおもしろい名前が思いつくのかな。
0957デフォルトの名無しさん
2005/08/09(火) 23:56:44つけると、外で待機していたダーネルが顔に不気味な赤い斑点を残して死んでいるで
はないか!?カークは早急にダーネルの遺体をエンタープライズに持ち帰り、その死
因の調査を開始した。ダーネルの死を目撃したナンシーによると、彼は”ボルジョア”
という毒性の木の実を誤って食べてしまい、そのために死んだのだと言う。
しかし、検死の結果、ダーネルの死には毒物は一切関係なかった。毒物で死んだの
ではなく、彼の体内の塩分が全て喪失したことがその原因だったのである。何故、そ
のような現象が起きたのか、そして何故、ナンシーは嘘の証言をしたのだろうか?
カークは、クレイター博士が塩を欲しがっていたことを思いだし、夫婦に疑いの目
を向け、再びM113に上陸する。しかし、婦人は先程から出かけているとの話で、カー
クは部下のグリーンとスタージョンに彼女を探させた。
0958938
2005/08/10(水) 00:23:26sage忘れてたのを怒られてたんですね・・・気付かなくて申し訳ないです
ところで、これを引数で年だけしか入力しなかった時にその年のカレンダーを全部表示されるにはどこを変えればいいんでしょう?
12回繰り返せばいいってことはわかるんですが・・・
0959デフォルトの名無しさん
2005/08/10(水) 05:32:011年分表示なら、大丈夫だけど。
>958
main()内でargcをチェックしてるところがあるが、
引数なしだと、argc == 1
引数1こだと、argc == 2
引数2こだと、argc == 3
引数Nこだと、argc == N+1
で納得してくれ。
0960デフォルトの名無しさん
2005/08/10(水) 07:18:28内藤ホライゾンは?
0961デフォルトの名無しさん
2005/08/10(水) 07:55:480962デフォルトの名無しさん
2005/08/10(水) 14:56:29[2] 問題文(含コード&リンク):
文字列の前と後ろのホワイトスペースをトリミングする関数を作れ。
char *trim(char *str);
トリミングされた文字列の先頭ポインタを返す。
入力文字列は破壊して構わない。
[3] 環境
[3.1] OS:Linux推奨
[3.2] コンパイラ(バージョン):gcc推奨
[3.3] 言語:C
[4] 期限:2005年08月10日19:00まで
[5] その他の制限:
ホワイトスペース判定にはisspaceを使ってよい。
余力のあるものはコードを極限まで短くしてみよ。
こちらに張りなおしました! おねがいいたっす!(><)
0963デフォルトの名無しさん
2005/08/10(水) 15:10:27今はマネージドなのでポインタは時代遅れと言え
嫌ならBASICでTRIMしろ
0964デフォルトの名無しさん
2005/08/10(水) 15:41:56#include<stdio.h>
#include<ctype.h>
#include <string.h>
char *trim(char *str);
int main()
{
char in[] = " test test ";
char *out;
out = trim(in);
printf("[%s]\n",out);
return 0;
}
char *trim(char *str)
{
char *loc;
int i;
while(isspace(*str))str++;
i = strlen(str);
if (i != 0)
{
loc = str + i -1;
while(isspace(*loc))loc--;
loc[1] = '\0';
}
return str;
}
久々にCをやってみた
0965デフォルトの名無しさん
2005/08/10(水) 15:59:02あまり短くならない
char *trim(char *str) {
int i = strlen(str);
if (i && isspace(str[i - 1])) str[i - 1] = '\0', trim(str);
return !isspace(str[0]) ? str : trim(str + 1);
}
0966デフォルトの名無しさん
2005/08/10(水) 16:28:40ありがとうございました!(><)
さっそく試してきます!
0967デフォルトの名無しさん
2005/08/10(水) 16:42:090968デフォルトの名無しさん
2005/08/10(水) 16:47:41一応ここにも書いといたから
内藤ホライゾンがC/C++の宿題を片付けます 49
http://pc8.2ch.net/test/read.cgi/tech/1122705615/63
0969デフォルトの名無しさん
2005/08/10(水) 16:54:11while(i && isspace(*(str+i))) *(str+(i--))='\0';
while(isspace(*str)) ++str;
return str;
これもそれなりに短い
0970デフォルトの名無しさん
2005/08/10(水) 16:55:55str=""のときはi==-1になって*(str+i)であぼーん
0971969
2005/08/10(水) 16:57:57int i=strlen(str)-1;
while(i>0 && isspace(*(str+i))) *(str+(i--))='\0';
while(isspace(*str)) ++str;
return str;
こうしよう
0972デフォルトの名無しさん
2005/08/10(水) 16:59:59s = malloc(100);
/* ... */
s = trim(s);
/* ... */
free(s); /* ←あぼーん*/
0973デフォルトの名無しさん
2005/08/10(水) 17:04:25問題文よく読めw
トリミングした文字列の先頭ポインタ、だが?
0974デフォルトの名無しさん
2005/08/10(水) 17:04:280975デフォルトの名無しさん
2005/08/10(水) 17:04:47それはOKだろう
0976データボックス
2005/08/10(水) 17:19:17{
char *pc1, *pc2;
for (pc2 = str; *pc2; pc2++)
;
while (pc2-- > str)
if (*pc2 > ' ')
break;
*(++pc2) = '\0';
for (pc1 = str; pc1 < pc2; pc1++)
if (*pc1 > ' ')
break;
return pc1;
}
0977デフォルトの名無しさん
2005/08/10(水) 17:19:350978デフォルトの名無しさん
2005/08/10(水) 17:21:34http://pc8.2ch.net/test/read.cgi/tech/1123661447/
0979デフォルトの名無しさん
2005/08/10(水) 17:22:43制御文字は全て削除対象ですか。そうですか。
0980デフォルトの名無しさん
2005/08/10(水) 17:23:35http://pc8.2ch.net/test/read.cgi/tech/1122705615/
じゃねの?
0981デフォルトの名無しさん
2005/08/10(水) 17:38:13VIPに汚染されたスレなんか誰がいくか
0982606、875です
2005/08/10(水) 22:26:22その関数を記述し、whileの前でその関数を呼んでも駄目でした。
すみませんがもう一度考えていただけないでしょうか?
0983デフォルトの名無しさん
2005/08/10(水) 22:59:330984デフォルトの名無しさん
2005/08/10(水) 23:06:390985878
2005/08/10(水) 23:41:19悪かった。俺が>>639のコードの内容をよく読んでなかった。
今度は実験したから多分うまくいく。
/* ファイルを読む */
void ReadFromFile() {
Person* person = (Person*)malloc(sizeof(Person));
FILE* stream = fopen(OUTPUT_PATH,"r");
if (stream) {
while (fscanf(stream,"%d%s%s",&person->number,&person->name,&person->position) == 3) {
SetMember(person);
person = (Person*)malloc(sizeof(Person));
}
fclose(stream);
free(person);
}
}
0986606、875です
2005/08/11(木) 01:54:08すみません。正常に動作しないようです。起動時に強制終了したり、登録時に強制終了します。
0987デフォルトの名無しさん
2005/08/11(木) 02:07:46すまんもう一回。
/* ファイルを読む */
void ReadFromFile() {
Person* person = (Person*)malloc(sizeof(Person));
FILE* stream = fopen(OUTPUT_PATH,"r");
if (stream) {
while (fscanf(stream,"%d%s%s",&person->number,&person->name,&person->position) == 3) {
person->next = NULL;
SetMember(person);
person = (Person*)malloc(sizeof(Person));
}
fclose(stream);
free(person);
}
}
0988デフォルトの名無しさん
2005/08/11(木) 08:22:25なんですべてのメンバー変数の設定に失敗する可能性があるのに
最初にmallocしちゃうんだろ
失敗したとき用にいちいちreturn手前でfreeする必要あるじゃん
最初はスタックにPersonを取って、メンバー変数すべて成功したら
そこでmallocして構造体コピーだろ
あと、SetMemberの中でfreeしちゃってるが、いいのかよ..Setでfreeかよ...
0989デフォルトの名無しさん
2005/08/11(木) 10:45:460990デフォルトの名無しさん
2005/08/11(木) 10:46:290991デフォルトの名無しさん
2005/08/11(木) 10:47:000992デフォルトの名無しさん
2005/08/11(木) 10:47:300993デフォルトの名無しさん
2005/08/11(木) 10:48:120994デフォルトの名無しさん
2005/08/11(木) 10:50:100995デフォルトの名無しさん
2005/08/11(木) 10:50:410996ぼるじょあ ◆yBEncckFOU
2005/08/11(木) 10:58:460997デフォルトの名無しさん
2005/08/11(木) 11:11:24なんでそんな連中に願いをかなえてもらえるわけ?
無理ッつーか、お門違いもいいとこじゃないか?
0998デフォルトの名無しさん
2005/08/11(木) 11:21:51次スレ 49代目
http://pc8.2ch.net/test/read.cgi/tech/1123661447/
0999デフォルトの名無しさん
2005/08/11(木) 11:22:461000ぼるじょあ ◆yBEncckFOU
2005/08/11(木) 11:23:3110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。