C/C++の宿題片付けます 122代目
at TECH
1:デフォルトの名無しさん
09/01/15 23:21:27
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
【C 関数検索 man on WWW】 URLリンク(www.linux.or.jp)
【過去ログ検索】 URLリンク(chomework.sakura.ne.jp)
【wiki】 URLリンク(www23.atwiki.jp)
前スレ
C/C++の宿題を片付けます 121代目
スレリンク(tech板)
2:デフォルトの名無しさん
09/01/16 00:52:45
皆様のおかげで無事単位を取得できました
本当にありがとうございます
これからは人に頼らずできるかぎり自分の力で頑張っていきたいです
3:デフォルトの名無しさん
09/01/16 01:09:15
C/C++の宿題を片付けます 122代目
スレリンク(tech板)
重複
4:デフォルトの名無しさん
09/01/16 17:24:48
保守しといたらいいのかな
ところで何で122題目じゃなくて122代目なの?
5:デフォルトの名無しさん
09/01/17 21:05:23
janeの隠し機能
1.書き込みウィンドウを出し半角入力に切り替える
2.Wキーを押しっぱなしにする
3.Wキを押しっぱなしにしながらsageのチェックするところをおもむろにクリック
6:デフォルトの名無しさん
09/01/17 21:15:18
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
7:デフォルトの名無しさん
09/01/17 23:40:29
3 は「コテハン記憶チェック」「最前面チェック」「末尾整形」「BE」「Proxy」のどのチェックを操作してもいけるな
8:デフォルトの名無しさん
09/01/27 08:45:05
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
9:デフォルトの名無しさん
09/01/27 11:08:41
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
10:デフォルトの名無しさん
09/01/30 10:49:33
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
11:デフォルトの名無しさん
09/01/30 10:50:17
wwwwwwwwwwwwwwwwwwwwwwwwwww
12:デフォルトの名無しさん
09/01/30 11:00:12
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
13:デフォルトの名無しさん
09/01/30 16:05:21
残ってる期限内の課題はこれだけかな。
C/C++の宿題を片付けます 122代目
スレリンク(tech板:705番)
→解析と言うのも良く知らないが、これってどう言う処理結果を期待してるんだろ?
C/C++の宿題を片付けます 122代目
スレリンク(tech板:891番)
→オレには、「きのこのやまはたべざかり」も解析できないが、多分、ここの学生にも出来ないような・・・
14:デフォルトの名無しさん
09/01/30 16:56:07
異なる30個の数字をうんたらかんたらって課題は早稲田大学理工学部かな
15:デフォルトの名無しさん
09/01/30 20:57:38
wwwwwwwwwwwwwwwww
16:デフォルトの名無しさん
09/01/30 20:58:14
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
17:デフォルトの名無しさん
09/01/30 21:32:00
[1] 授業単元: プロムラミング
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C言語
[4] 期限:1月31日まで
[5] その他の制限:変わった問題ですが、誰かお願いします!!
18:デフォルトの名無しさん
09/01/30 21:35:16
うむ、たしかに変わった問題だ。
19:デフォルトの名無しさん
09/01/30 21:50:10
>>17
これで、しかも、マルチ
20:デフォルトの名無しさん
09/01/30 23:14:45
>>18
>>19
変わった問題ですみません。わかりますか?
21:デフォルトの名無しさん
09/01/30 23:17:45
>>17のレスだけを与えられて問題にたどり着けるかどうか試してみたら?
22:デフォルトの名無しさん
09/01/30 23:26:01
>>21
すみません、どうゆうことですか(><)?
23:デフォルトの名無しさん
09/01/30 23:26:52
>>22
>>17から出発して、自分で問題文を探してみろよって言ってんだ
24:デフォルトの名無しさん
09/01/30 23:39:40
>>23
私の問題はNo.8780ですが、どうしたらいいかわからないんです。。。
25:デフォルトの名無しさん
09/01/30 23:45:44
>>17
URLリンク(kansai2channeler.hp.infoseek.co.jp)
26:デフォルトの名無しさん
09/01/30 23:50:45
>>25
その問題なんですけど、問題の意味がわからないってことですか?
27:デフォルトの名無しさん
09/01/30 23:57:00
>>26
問題文が長いときはzipに入れとこうね。
28:デフォルトの名無しさん
09/01/30 23:59:04
>>27
すみません(><)やり方がいまいちわからなかったもんで。。。
ありがとうございます!!
29:デフォルトの名無しさん
09/01/31 00:10:36
>>17
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これと同じ問題だよね。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
30:デフォルトの名無しさん
09/01/31 00:11:31
>>24
オマエ以外の誰がそれを知ってんだよ、バカ
31:デフォルトの名無しさん
09/01/31 00:12:22
>>28
マルチったレッドで回答ついてるだろ。
死ね。
32:デフォルトの名無しさん
09/01/31 00:22:16
>>29
それとおんなじ問題です。
33:デフォルトの名無しさん
09/01/31 00:23:01
>>30>>31
すみません。。。
34:デフォルトの名無しさん
09/01/31 00:29:04
1万個以下の都市間の距離が記録されている。
近い都市どおしをまとめて、n個のグループに分ける。
これわかる人いますか?
35:デフォルトの名無しさん
09/01/31 00:34:37
ワーシャル・フロイト法?
36:デフォルトの名無しさん
09/01/31 00:35:24
>>34
>>1くらい読め
一刻も早く死ね
37:デフォルトの名無しさん
09/01/31 00:40:59
>>34
スレタイと>>1嫁
まともに訊く気があるなら”近い都市どおしをまとめて”って辺りを詳しく
38:デフォルトの名無しさん
09/01/31 00:43:59
>>34
よく見ると、日本語でおkだ・・・
ねたか・・・
39:デフォルトの名無しさん
09/01/31 01:05:08
すみません。
都市は円形同サイズで、中心間の距離が記録されています。
2つにわれる場合は、同程度サイズになるようにします。
合併後の都市の中心から橋が離れすぎないようにします。
40:デフォルトの名無しさん
09/01/31 01:06:58
>>39
>>1くらい読め
死ね
41:デフォルトの名無しさん
09/01/31 01:10:08
>>39
スレタイ嫁
あと、書いた文を人が読んで理解できるかどうかを考えて文を書け
3行目以下が意味不明
42:デフォルトの名無しさん
09/01/31 01:23:32
よく読むと微妙にスレタイ変わってるんだな
43:デフォルトの名無しさん
09/01/31 01:38:02
>>17は結局何が悪かったのかに気づいてないんだろうな。
zipじゃなかったことについて怒られたんだと思ってるよきっと。
44:デフォルトの名無しさん
09/01/31 01:42:58
スレタイだけ読んだってしょうがないだろ
テンプレも読ませないと
45:デフォルトの名無しさん
09/01/31 01:43:01
>>42
重複スレだから仕方ない
46:デフォルトの名無しさん
09/01/31 02:48:41
[1] 分岐 一次元配列 繰り返し 外部関数
[2] URLリンク(www.pref.fukushima.jp)(問2問3)
[[3] 環境
[3.1] OS:Windows XP
[3.2] visual C++
[3.3] C++
[4] 期限: 2009年2月3日まで]
[5] main関数以外にユーザ定義関数を作成すること。
困ってます。誰か助けてください。
47:デフォルトの名無しさん
09/01/31 03:08:02
>>46
スパコン甲子園かと思ったら、パソコン甲子園なんだな・・・
48:デフォルトの名無しさん
09/01/31 03:16:41
>>47
高校生が20分掛けずに解くことになっている問題じゃねーか!
49:デフォルトの名無しさん
09/01/31 03:20:20
1問あたり20分?
50:デフォルトの名無しさん
09/01/31 03:49:05
>>49
予選の問題だろ?
180分で10問だってさ。
51:デフォルトの名無しさん
09/01/31 03:52:37
>>50
本選の問題で、240分で12題の配分。
52:デフォルトの名無しさん
09/01/31 04:38:32
>>46
こんな?
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
53:デフォルトの名無しさん
09/01/31 05:13:15
>>52
iostreamライブラリ関数(習っていない)を使わないで
入力もscanfをつかって表現できませんか?
実際、C言語習って3か月しかたってないので
基礎しかわかりません・・。
54:デフォルトの名無しさん
09/01/31 05:28:08
46>>
main関数以外と最後に書いてありますが
main関数も使って結構です。
要するに二つの関数を用いれば結構です。
たびたび、すみません
55:デフォルトの名無しさん
09/01/31 05:32:15
[1] 授業単元:while文
[2] 問題文:キーボードから入力された2以上の自然数nが素数であるかどうか繰り返し調べるプログラムを作ってみましょう。
1回終わるごとに「次の2以上の自然数を入力してください」と再入力
nに0以下の整数が入力された場合は
「0以下の整数が入力されました」 「次の2以上の自然数を入力してください」と再入力
nに1が入力されたら「終了します」として調べるのを終える
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Borland C++ Compiler、bcc developer
[3.3] 言語: C++
[4] 期限:2009年2月2日10:30まで
[5] その他の制限:while(1)で無限ループとか、goto文使えばできるんですが授業で扱ってません。。
56:デフォルトの名無しさん
09/01/31 05:35:30
>>53
C++なのにiostreamやってないの?
Cなんじゃないの?
57:デフォルトの名無しさん
09/01/31 05:48:28
>>56まだ習ってないです・・汗
58:デフォルトの名無しさん
09/01/31 05:50:34
それは酷いな
59:デフォルトの名無しさん
09/01/31 06:23:56
>>55
URLリンク(kansai2channeler.hp.infoseek.co.jp)
60:デフォルトの名無しさん
09/01/31 09:34:30
>>53
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
殆んど意味不明。
>>46には一次元配列と書いてあるが使うところが無いし
61:デフォルトの名無しさん
09/01/31 09:50:08
問3は配列を使いたいね
62:デフォルトの名無しさん
09/01/31 10:14:54
URLリンク(kansai2channeler.hp.infoseek.co.jp)
63:デフォルトの名無しさん
09/01/31 13:06:46
前スレで回答いただいた者(>>973)ですが、
URLリンク(kansai2channeler.hp.infoseek.co.jp)
をコンパイルしたところ、
59: 警告 return type of 'main' is not 'int'
と表示されます。どう直せばよいのでしょうか?
64:デフォルトの名無しさん
09/01/31 13:20:04
>>63
やむを得まい、int main(void) { return0; } にするしかない。
65:デフォルトの名無しさん
09/01/31 13:37:57
>>64
ありがとうございました!
66:デフォルトの名無しさん
09/01/31 13:42:48
>>46
面白い問題だ
制限時間内に全問正解できる自信がないぜw
67:デフォルトの名無しさん
09/01/31 15:34:18
>>46
高校レベルなの??
68:デフォルトの名無しさん
09/01/31 15:46:13
>>46
プログラムとしてはどうか知らんが
数学的には未解決問題の上に賞金もかけられていたはず
69:デフォルトの名無しさん
09/01/31 15:46:34
>>59
本当にありがとうございます!
すっきりしててわかりやすいです!
70:デフォルトの名無しさん
09/01/31 15:58:37
>>68
与えられた数字より、小さい数字に出来ることを示せばいい。
たとえば、100から始めたら、99以下になる事を示す。
そうすれば数学的帰納法で全ての数字で成り立つ。
71:デフォルトの名無しさん
09/01/31 15:59:47
>>70
言ってることは尤もなんだが
数学者を馬鹿にしてるのかw
72:デフォルトの名無しさん
09/01/31 16:06:39
>>70
たしかICMで我々人類がこれらの問題を解決するにはまだ十分な準備ができていない発言があったはず
73:デフォルトの名無しさん
09/01/31 16:11:29
これって1から逆にたどったら、全ての数字が生成出来るのかな。
もし生成出来て、試行回数に応じた出現回数の上限が存在すれば解ける。
74:デフォルトの名無しさん
09/01/31 16:12:21
間違えた
もし生成出来て、試行回数に応じた出現数字の上限が存在すれば解ける。
75:デフォルトの名無しさん
09/01/31 16:16:33
1から逆にたどったn回の試行で、f(n)以下の数字が全て生成出来る
という関数f(n)が決定出来れば、解ける。
76:デフォルトの名無しさん
09/01/31 16:16:44
>>73
5 → 16
32 → 16
これを逆にたどるとすると枝が多すぎて解析不能
77:デフォルトの名無しさん
09/01/31 16:20:27
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
自動販売機のオブジェクトを作成しないさい
(商品はオレンジジュース、コーラ、サイダーの三つにする事)更に下記の条件を満たすこと
<条件>
自動販売機で購入できる「商品」,「お金」,「自動販売機」は最低限クラス化すること。
「カプセル化」,「継承」,「多様性」を全て利用すること。
例外処理をすること(プログラムが頓挫した時点でNGとします)。
入出力は,下記のとおり行うこと。
【入力】 【出力】
・お金(10円〜1000円)の個数(枚数) ・つり銭(10円〜100円)の個数(枚数)と総購入代金
・購入商品選択(複数可) ・購入商品名(複数)
実現は,main()関数で「自動販売機」クラスのインスタンスを1つ作成し,そのクラスのbuy( )メンバ関数を呼び出したら全てが動作するようにする。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VB2005
[3.3] 言語: C++
[4] 期限: 2/1まで
[5] その他の制限: 特になし。
78:デフォルトの名無しさん
09/01/31 16:25:12
n回の試行でlog_10(n)以下の数字が全て生成出来るは合ってるか?
79:デフォルトの名無しさん
09/01/31 16:29:35
>>76
だな
コラッツ予想の写像がN→Nへの全単射でないからな
どうにもならん
80:デフォルトの名無しさん
09/01/31 16:43:13
別に、分岐があってもいいんだ。 全ての数字が生成出来るなら1へたどり着けるからな。
n回試行でlog_10(n)以下の数字生成出来るを証明すれば解けるぞ。
この評価は間違ってはいないと思うが。
10^4 = 10000 回試行で4以下を生成すればいいという余裕と思われる評価。
81:デフォルトの名無しさん
09/01/31 16:50:01
2進数だと、シフト(2倍する)と1を加えるで、全ての数字が生成出来るが
同じような理屈でできないか?
82:デフォルトの名無しさん
09/01/31 17:20:24
>>77
おいおいVBってなんだよw
83:デフォルトの名無しさん
09/01/31 17:27:03
ろだのPOSシステムの問題どなたかお願いします。
84:デフォルトの名無しさん
09/01/31 17:43:24
>>83
>>1くらいよめ
読む前に死ね
85:デフォルトの名無しさん
09/01/31 17:44:42
>>46
ハミング問題が15点とかきついな。
86:デフォルトの名無しさん
09/01/31 18:41:57
int isHamming(int n)
{
while(n % 2 == 0) n /= 2;
while(n % 3 == 0) n /= 3;
while(n % 5 == 0) n /= 5;
return n == 1 ? 1 : 0;
}
この程度の関数で十分だろ
87:デフォルトの名無しさん
09/01/31 19:11:33
wwwwwwwwwwwwwwwwwwwwww
88:デフォルトの名無しさん
09/01/31 20:13:36
>>77
例外処理してない&動くかどうかしらんが、
class jusu{ public: virtual int p(){ return 0; } };
class orenji : public jusu{ public: int p(){ return 120; } };
class kora : public jusu{ public: int p(){ return 120; } };
class saida : public jusu{ public: int p(){ return 120; } };
class okane{ int _10, _50, _100, _500, _1000;
public: okane(){} okane(int a, int b, int c, int d, int e){ _10=a; _50=b; _100=c; _500=d; _1000=e; }
int p(){ return _10*10+_50*50+_100*100+_500*500+_1000*1000; }
};
class hanbaiki{ public: okane Buy(okane kane, int o, int k, int s, jusu *syohin){
int out=0;
for(int i=0; i<o; ++i, syohin[out++] = orenji());
for(int i=0; i<k; ++i, syohin[out++] = kora());
for(int i=0; i<s; ++i, syohin[out++] = saida());
int turi = kane.p()-o*orenji().p()+k*kora().p()+s*saida().p();
int _1000=turi/1000; turi-=_1000; int _500=turi/500; turi-=_500; int _100=turi/100; turi-=_100;
int _50=turi/50; turi-=_50; int _10=turi/10; turi-=_10;
return okane(_10, _50, _100, _500, _1000);
}};
int main(){ jusu syohin[100]; okane oturi = hanbaiki().Buy(okane(1,1,1,1,1), 1, 1, 1, syohin); return 0; };
89:デフォルトの名無しさん
09/01/31 20:21:46
ちょっとなおした。でも多分まだ間違ってる。でもやるきないのでこれで終わり。
class jusu{ public: virtual int p(){ return 0; } };
class orenji : public jusu{ public: int p(){ return 120; } };
class kora : public jusu{ public: int p(){ return 120; } };
class saida : public jusu{ public: int p(){ return 120; } };
class okane{ int _10, _50, _100, _500, _1000;
public: okane(){} okane(int a, int b, int c, int d, int e){ _10=a; _50=b; _100=c; _500=d; _1000=e; }
int p(){ return _10*10+_50*50+_100*100+_500*500+_1000*1000; }
};
class hanbaiki{ public: okane Buy(okane kane, int o, int k, int s, jusu *syohin){
int out=0;
for(int i=0; i<o; ++i, syohin[out++] = orenji());
for(int i=0; i<k; ++i, syohin[out++] = kora());
for(int i=0; i<s; ++i, syohin[out++] = saida());
int turi = kane.p()-o*orenji().p()+k*kora().p()+s*saida().p();
int _1000=turi/1000; turi-=_1000*1000; int _500=turi/500; turi-=_500*500; int _100=turi/100; turi-=_100*100;
int _50=turi/50; turi-=_50*50; int _10=turi/10; turi-=_10*10;
return okane(_10, _50, _100, _500, _1000);
}};
int main(){ jusu syohin[100]; okane oturi = hanbaiki().Buy(okane(1,1,1,1,1), 1, 1, 1, syohin); return 0; };
90:デフォルトの名無しさん
09/01/31 20:30:39
0TEN
91:デフォルトの名無しさん
09/01/31 21:03:02
>>89
1660円入れて、おつりが1780円?
92:デフォルトの名無しさん
09/01/31 21:06:48
_10とかの変数名見てふと思ったんだけど、
Javaの変数名って日本語文字使えるのん?
93:デフォルトの名無しさん
09/01/31 21:09:04
使えない
94:デフォルトの名無しさん
09/01/31 21:12:49
使えるよw
95:デフォルトの名無しさん
09/01/31 21:16:23
試してみればいいよ
96:デフォルトの名無しさん
09/01/31 21:19:17
まじだ、JAVAのパーサはUNICODEで解釈するのか。
97:デフォルトの名無しさん
09/01/31 21:19:58
あ、やっぱりだめなのね。
わしの持ってる本にはウムラウトとかが許されるって書いてあるから
漢字もできるのかと思った。
98:デフォルトの名無しさん
09/01/31 21:20:43
あれw
使えるの? あはーん?
Visual Studio 2008はJ++廃止されちゃったから試せない。
99:デフォルトの名無しさん
09/01/31 22:17:54
C#は使えるな
100:デフォルトの名無しさん
09/01/31 23:23:38
1] 授業単元:数値計算演習
[2] 問題文:次の二階微分方程式を解け。初期値は適当にとれ。
dv_x/dt=x/(x^2+y^2) , dx/dt=v_x
dv_y/dt=y/(x^2+y^2) , dy/dt=v_y
[3.1] OS: Windows
[3.2] コンパイラ名:Borland C++ Compiler、bcc developer
[3.3] 言語: C
[4] 期限:2月2日
[5] その他の制限:常微分方程式のルンゲクッタでググって調べたんですが、
この問題は変数が多くて応用できませんでした。どなたかよろしくお願いします。
101:デフォルトの名無しさん
09/02/01 01:04:09
>>100
まあ、この式をどう読むのかも知らん
102:デフォルトの名無しさん
09/02/01 01:05:40
>>98
J++でできるからといってJAVAでできると言ってしまうのはひどい
逆にJAVAで可能なのかどうかを調べる為にJ++を使用するのもひどい
103:デフォルトの名無しさん
09/02/01 01:06:35
>>91
おつり計算のところ、括弧忘れてるね
104:デフォルトの名無しさん
09/02/01 02:33:56
>>100
ルンゲクッタ使うならこんな感じでいい希ガス
URLリンク(kansai2channeler.hp.infoseek.co.jp)
105:デフォルトの名無しさん
09/02/01 12:03:43
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC2005EE
[3.3] 言語:C++
[4] 期限:09/02/03迄
[5] その他の制限:問4以外は#include <stdio.h> void main(){ ではじまること。
問1はURLリンク(kansai2channeler.hp.infoseek.co.jp)
の続きでお願いします。最小値がどうも0になってしまいます。
それではよろしくお願いします。
106:デフォルトの名無しさん
09/02/01 13:10:04
>>105
問1はmin=1000ぐらいにしとけ
それより問5が正常に動作していない件について
107:デフォルトの名無しさん
09/02/01 14:49:43
>>100
微分方程式の数値解としか言われてないならオイラー法で良かろう。一応1次のルンゲクッタだ。
>>105
問2
/* ヘッダとかdefineとか自分で考えてくれ。 */
int main(void){
char user_name[256];
int i,len;
puts("Input User Name");
scanf("%s",user_name);
len = strlen(user_name) - 1;
if( len > 8 || len <= 0 ) { printf("ユーザー名入力エラーです :: len=%d\n",len); exit(1); }
if( !isupper(user_name[0]) && !islower(user_name[0] ) { printf("ユーザー名の先頭文字が異常です :: %c\n", user_name[0]); exit(1);}
for(i=0;i<8;i++) if( !isalnum(user_name[i])) { printf("ユーザー名の一部が異常です :: %s\n", user_name); exit(1);}
sprintf(user_name,"メールアドレス : %s@%s",user_name,"helloworld.com");
puts(user_name);
reutrn 0;
}
108:デフォルトの名無しさん
09/02/01 15:10:38
if( !isupper(user_name[0]) && !islower(user_name[0] ) {
if( !isalpha(user_name[0]) ) {
for (i=0;i<8;i++)
for (i=1;i<len;i++)
sprintf(user_name,
printf(
puts(user_name);
109:デフォルトの名無しさん
09/02/01 17:19:22
>>105
問1に関して
maxとminを0で初期化するのは適切ではない
2個目のfor文の前で
max=a[0];
min=a[0];
のようにすべき
110:デフォルトの名無しさん
09/02/01 18:30:45
>>105
問4
#include <stdio.h>
#include <math.h>
void main(){
int a,b,c;
double x1,x2;
int D;
printf("a = ");scanf("%d",&a);
printf("b = ");scanf("%d",&b);
printf("c = ");scanf("%d",&c);
D = b*b - 4*a*c;
if(D > 0){
x1 = (-b - sqrt(D))/ 2*a;
x2 = (-b + sqrt(D))/ 2*a;
printf("二次方程式 %d x^2 + %d x+ %d = 0 は相異なる2つの実数解を持ち、解の値は%.2fと%.2fです。\n",a,b,c,x1,x2);
}
else if(D == 0){
x1 = -b / 2*a;
printf("二次方程式 %d x^2 + %d x+ %d = 0 は重解を持ち、解の値は%.2fです。\n",a,b,c,x1);
}
else{
printf("二次方程式 %d x^2 + %d x+ %d = 0 は実数解を持ちません。\n",a,b,c);
}
}
111:デフォルトの名無しさん
09/02/01 19:04:47
>>105 問5
#include <stdio.h>
void main(){
int i;
char str1[256];
char str2[256];
int count1 = 0;
int count2 = 0;
printf("文字列1:");fgets(str1,256,stdin);
printf("文字列2:");fgets(str2,256,stdin);
for(i = 0; str1[i] != '\0'; i++){if(str1[i] == ' ') count1++;}
for(i = 0; str2[i] != '\0'; i++){if(str2[i] == ' ') count2++;}
printf("文字列1中の英単語の数= %d\n",count1+1);
printf("文字列2中の英単語の数= %d\n",count2+1);
printf("英単語の数が多い方の文字列は 文字列%d です。\n",(count1 > count2) ? 1 : 2);
}
112:デフォルトの名無しさん
09/02/01 20:27:47
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限: ([2009年02月2日 20:00まで]
[5] その他の制限:
よろしくお願いします。
113:デフォルトの名無しさん
09/02/01 21:47:23
>>112
式の長さの上限は?
114:デフォルトの名無しさん
09/02/01 22:14:05
>>113
特にありません
115:デフォルトの名無しさん
09/02/01 22:40:06
>>112 括弧を対応させる方法が思い出せない
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char b[256], *p = b;
double t(void){
double t = 0;
while(1){
if(isspace(*p)) p++;
else if(*p == '*'){ p++; t *= strtol(p, &p, 10);}
else if(*p == '/'){ p++; t /= strtol(p, &p, 10);}
else if(isdigit(*p)) t = strtol(p, &p, 10);
else return t;
}
}
double e(double r){
while(1){
if(isspace(*p)) p++;
else if(*p == '\0') return r;
else if(*p == '+'){ p++; r += t();}
else if(*p == '-'){ p++; r -= t();}
else r = t();
}
}
int main(int c, char *v[]){
FILE *in, *out;
if(c < 3 || (in = fopen(v[1], "r")) == NULL ||
(out = fopen(v[2], "w")) == NULL) return 1;
fscanf(in, "%255[^\n]", b);
fprintf(out, "%g\n", e(t()));
return fclose(in), fclose(out), 0;
}
116:デフォルトの名無しさん
09/02/01 22:42:36
【質問テンプレ】
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク): URLリンク(keisan.casio.jp)
上記のリンクの様に、
変数x、平均μ、標準偏差σを与えて
正規分布の確率密度 f(x)、下側累積確率 P(x)、上側累積確率 Q(x)を求める関数を実装したいです。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc 3.4.4)
[3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 2009年02月02日12:00まで
[5] その他の制限:
過去ログ等を漁りましたがありませんでした。
よろしくお願いします。
117:116
09/02/01 23:00:56
なお、以下のような、平均0、標準偏差1の場合に
下側累積確率、上側累積確率を求める関数を見つけたのですが、
どのように変更を加えて良いのかわかりませんでした。
ご教授お願いします。
#include <math.h>
#define PI 3.14159265358979323846264
double p_nor(double z) /* 正規分布の下側累積確率 */
{
int i;
double z2, prev, p, t;
z2 = z * z;
t = p = z * exp(-0.5 * z2) / sqrt(2 * PI);
for (i = 3; i < 200; i += 2) {
prev = p; t *= z2 / i; p += t;
if (p == prev) return 0.5 + p;
}
return (z > 0);
}
double q_nor(double z) /* 正規分布の上側累積確率 */
{
return 1 - p_nor(z);
}
118:デフォルトの名無しさん
09/02/01 23:48:49
>>107-111
ありがとうございます。
問5はできたのですがそれ以外ができません。
問1は>>109の通りにやったら最小値でました!ありがとうございます。
平均値はどのようにして出せばいいのでしょうか?
それではよろしくお願いします。
119:デフォルトの名無しさん
09/02/01 23:53:00
>>118
> 平均値はどのようにして出せばいいのでしょうか?
値を全部足して、それを値の個数で割る
120:デフォルトの名無しさん
09/02/01 23:53:40
>>118
>問5はできたのですがそれ以外ができません。
難しくて全く理解できないのか、自分で作ってバグがでるのか、何を求めているのか。
言われなきゃ分からんとはな。
121:デフォルトの名無しさん
09/02/02 00:12:12
>>119>>120
ごめんなさい。質問する以前の問題でしたね・・・。
問1:全ての値の合計の仕方がわかりません。
問2:>>107を見てやってみたのですがバグが出てしまって、自分で直そうとしたんですが難しくて手のつけようが・・・。
問3:問2を少し弄れば出来そうな気はします
問4:バグがでます
122:デフォルトの名無しさん
09/02/02 00:12:29
あぁ、またsage忘れたorz
123:デフォルトの名無しさん
09/02/02 00:21:37
これはひどい
124:デフォルトの名無しさん
09/02/02 00:39:39
>>121
合計の出し方
sumを0に初期化
2個目のfor文の中でsum+=a[i];
エラーメッセージを貼るなりしてくれないと
どんなバグが出てるのかわからない
125:デフォルトの名無しさん
09/02/02 00:48:26
>>124
問2>>107を実行すると
1>.\11.cpp(8) : error C3861: 'strlen': 識別子が見つかりませんでした
1>.\11.cpp(9) : error C3861: 'exit': 識別子が見つかりませんでした
1>.\11.cpp(10) : error C3861: 'isupper': 識別子が見つかりませんでした
1>.\11.cpp(10) : error C3861: 'islower': 識別子が見つかりませんでした
1>.\11.cpp(10) : error C3861: 'exit': 識別子が見つかりませんでした
1>.\11.cpp(11) : error C3861: 'isalnum': 識別子が見つかりませんでした
1>.\11.cpp(11) : error C3861: 'exit': 識別子が見つかりませんでした
1>.\11.cpp(14) : error C2065: 'reutrn' : 定義されていない識別子です。
1>.\11.cpp(14) : error C2143: 構文エラー : ';' が '定数' の前にありません。
講義で習ってないものばかりで・・・。
>>108は一体?
問4>>110を実行すると
1>.\11.cpp(12) : error C2668: 'sqrt' : オーバーロード関数の呼び出しを解決することができません。
1> D:\c++\VC\include\math.h(581): 'long double sqrt(long double)' の可能性があります。
1> D:\c++\VC\include\math.h(533): または 'float sqrt(float)'
1> D:\c++\VC\include\math.h(128): または 'double sqrt(double)'
1> 引数リスト '(int)' を一致させようとしているとき
1>.\11.cpp(13) : error C2668: 'sqrt' : オーバーロード関数の呼び出しを解決することができません。
1> D:\c++\VC\include\math.h(581): 'long double sqrt(long double)' の可能性があります。
1> D:\c++\VC\include\math.h(533): または 'float sqrt(float)'
1> D:\c++\VC\include\math.h(128): または 'double sqrt(double)'
1> 引数リスト '(int)' を一致させようとしているとき
126:107
09/02/02 01:10:16
ヘッダ自分で調べるくらいできるだろう。
strlen , exit , isupper , islower , isalnum ググれ。
returnのタイプミスはすまないが、気付かない方も考えてない証拠かと。
return 0; を 「reutrn 0;」と書けば、reutrnを変数などの識別詞とみなすから
「INTMAX 0;」とか「1 0;」と同等に扱われる。
returnに直せば問題解消。無意味だが「reutrn; 0;」とすれば、警告は片方減る。
127:110
09/02/02 01:15:20
>>125
VCでビルドしなかったのは俺のミスだ
sqrt(D)をsqrt((double)D)に直してくれ
128:デフォルトの名無しさん
09/02/02 01:19:33
>>126
仰るとおりです。申し訳ありません。
>>127
ありがとうございます
できました!
129:デフォルトの名無しさん
09/02/02 01:24:31
>>125
>>108は>>107の修正分を書いてる。
if( !isupper(user_name[0]) && !islower(user_name[0] ) {
を
if( !isalpha(user_name[0]) ) {
にする。
一行しかないものは削除
130:デフォルトの名無しさん
09/02/02 03:08:57
>>117
関数の引数を↓のようにして(muは平均sigmaは標準偏差)
double p_nor(double z, double mu, double sigma)
変数を宣言しているすぐ下に
z = (z-mu)/sigma;
を追加すればおk
131:116
09/02/02 03:27:12
>>130
できました!
こんな夜中にありがとうございます!
t = p = z * exp(-0.5 * z2) / (sqrt(2 * PI) * sigma);
のように、ここにもsigmaをかけなければいけないと思ってて
3日間ほどずっと悩んでました。
ほんとありがとうございます!
132:デフォルトの名無しさん
09/02/02 06:14:06
fprintfとfscanfを同時に使用する場合、fopenのモードは何にすれば良いのでしょうか?
当方初心者でかなり無知ですがよろしくおねがいします。
133:デフォルトの名無しさん
09/02/02 06:55:57
自己解決したすまね。
fopenを別々ですね。
134:デフォルトの名無しさん
09/02/02 10:57:09
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C++
[4] 期限: 2009年02月4日 まで
[5] その他の制限:
C言語の宿題だったのでお願いしました。
他の方と系統は違いますが、よろしくおねがいします。
135:デフォルトの名無しさん
09/02/02 11:47:57
フローチャートくらい・・・
って思ってしまう俺は疲れてるのかな。
136:デフォルトの名無しさん
09/02/02 11:49:01
疲れているなら、風呂に入っちゃ〜
137:デフォルトの名無しさん
09/02/02 11:50:34
一緒に入りませんか?
138:デフォルトの名無しさん
09/02/02 12:07:40
おれバイト&社会人でプログラム8年くらいやってるんだけど
フローチャートって使ったことない。使うもんなの?
139:デフォルトの名無しさん
09/02/02 12:09:11
>>133
ふつうは "r+" とか "w+" だな
同時と言っても順序・タイミング考えないとぐちゃぐちゃになってしまうが
140:デフォルトの名無しさん
09/02/02 12:09:31
>>138
今はどうか知らんけど、パチンコやパチスロのソフトは認可通すのに必須だとか?
141:デフォルトの名無しさん
09/02/02 12:16:55
>>138
使う場合もあるしない場合もあるけど
ISOなんちゃらの監査の時に資料がいるので一応作っている
142:デフォルトの名無しさん
09/02/02 12:39:06
>>140-141
そういう使い方なのか・・・
フローチャート書けるってことは、論理がわかってるってことだから
結局同じ手間でソースかけるような気がするんだよね。
だからフローチャートの必要性がわからんかった。
143:デフォルトの名無しさん
09/02/02 13:30:04
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual Studio
[3.3] 言語: C言語
[4] 期限: ([2009年02月3日 23:00まで]
[5] その他の制限:
144:デフォルトの名無しさん
09/02/02 13:47:15
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):URLリンク(beatguiter.xxxxxxxx.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: ([2009年2月2日0:00まで]
[5] その他の制限: 特にないが構造体とファイル処理まで習いました。
145:デフォルトの名無しさん
09/02/02 14:10:00
[1] 授業単元: 人工知能演習
[2] 問題文(含コード&リンク):
Hopfieldネットワークの連想う記憶に関する以下の2つの課題を行いなさい。
Hopfieldネットワークとしては、ニューロン数N=63のものを考える。また記憶さ
せるパターンは、numbers.txtにある、0〜9までの数字のイメージをもちいる。
課題→URLリンク(kansai2channeler.hp.infoseek.co.jp)
numbers.txt→URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2月4日23:59まで
[5] その他の制限: 特になし
146:デフォルトの名無しさん
09/02/02 14:21:34
>>145 追記です
よろしくお願いします。助けてください。
147:デフォルトの名無しさん
09/02/02 14:43:29
>>144 問1(exam01)を気まぐれにソースかいてみた。パーツに分けて書いた。
int main(void){
int Ary[5],i;
int Sum,Max,Min;
for(i=0;i<5;i++){ // 入力部
printf("Input Data Ary[%d] ?? ",i);
scanf("%d",Ary+i);
}
for(i=Sum=0;i<5;i++){ // 最大値計算部
Sum += Ary[i];
}
Max = Min = Ary[0]; // 0個目までの最小値最大値
for(i=1;i<5;i++){ // 1〜4個目までの最小値最大値
if(Ary[i]>Max) Max = Ary[i];
if(Ary[i]<Min) Min = Ary[i];
}
// 結果出力
printf("\t合計値 = %5d (Sum)\n",Sum);
printf("\t最小値 = %5d (Min), 最大値 = %5d (Max)\n",Min,Max);
printf("逆順:");
for(i=4;i>=0;i--){ // 逆順(forのデクリメント使用)
printf("%+5d ",Ary[i]); // インクリメントが良ければ書き直してくれ
}
return 0;
}
148:デフォルトの名無しさん
09/02/02 15:17:00
>>147
課題1のすっごいわかりやすかったです!!!
ありがとうございます、助かりました!!!
@課題2・3誰か助けてください orz
149:デフォルトの名無しさん
09/02/02 15:47:11
>>144,148
課題2
#include<stdio.h>
void put_n(char c,int n){
while(n--)printf("%c",c);
printf("\n");
}
int main(void){
int i,n;
scanf("%d",&n);
while(n<=0){
printf("正の整数を入力してください。\n");
scanf("%d",&n);
}
for(i=1;i<=n;i++)put_n('*',i);
printf("\n");
for(i=n;i;i--)put_n('*',i);
return 0;
}
150:デフォルトの名無しさん
09/02/02 16:24:03
課題3.コメントアウトつけなかったけど、ま分かるだろう。
#include <stdio.h>
#include <string.h>
int count_char(const char* s, char c){
int i,length,count=0;
length = strlen(s)-1;
for(i=0;i<length;i++) if( s[i] == c) count++;
return count;
}
int main(void){
int Size,i,tmpCount;
char strBuff[5][256];
for(i=0;i<5;i++){
printf("Input String (%d) ?? ",i);
scanf("%s",strBuff[i]);
}
for(i=0;i<5;i++){
tmpCount = count_char(strBuff[i],'a');
if(tmpCount == 0) continue;
printf("文字列[%s]に含まれる'a'の個数は%2dです\n",strBuff[i],tmpCount);
}
return 0;
}
151:デフォルトの名無しさん
09/02/02 16:25:28
>>149
課題提出に問題ないと思うけど
問題文の解釈は自分ではこうなるけど、、、
while(n<=0){
printf("Input n ?? ");
scanf("%d",&n);
if(n>0) break;
printf("正の整数を入力してください。\n"); //問題文から警告と読み取るとこの位置
}
for文と条件演算子使うと1行で(簡単なんだか難解なんだか)
// for(Size=0;Size<1;Size<1?puts("正の値を入力してください"):0 ) scanf("%d",&Size);
152:デフォルトの名無しさん
09/02/02 16:37:51
>>151
scanf("%d",&n);
while(n<=0){
printf("正の整数を入力してください。\n");
scanf("%d",&n);
}
入力部はこれでひと塊なんだ
153:デフォルトの名無しさん
09/02/02 16:48:57
>>144 です
>>150 を試してみましたが
色々入力してみて結果をみると
a が含まれてるのに表示されないのがあります
どう改善すればいいでしょうか;;;
154:デフォルトの名無しさん
09/02/02 16:51:16
>>153
fgets を使う
155:デフォルトの名無しさん
09/02/02 17:03:33
>>154
fgets って言うのは習ってないので
どこに組み込めばいいか分からないです…。
156:150-151
09/02/02 17:11:59
>>152
自分でコンパイルしてなかった。すまん。
>>153>>155
strlenが改行コード含むと思ってプログラムしてたから、自作関数の-1を消してもらえば大丈夫だと思う。
157:デフォルトの名無しさん
09/02/02 17:14:29
>>156
-1を消したらうまくできました!ありがとうございます^^
>>147,149,150,151,152,154,156
いい人が沢山居て本当に助かりました☆
皆さんありがとうございました!!!
158:デフォルトの名無しさん
09/02/02 18:50:58
>>143
読んでないけど、>>115で不満なのか?
159:デフォルトの名無しさん
09/02/02 20:53:12
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Borland C++Compiler 5.5
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語
[4] 期限: 2月5日まで
[5] その他の制限:C言語は一通り習ってます。
(1)がさっぱりわかりません・・・・。よろしくお願いします。
160:デフォルトの名無しさん
09/02/02 21:01:55
(x^n) mod m
161:デフォルトの名無しさん
09/02/02 21:04:48
>>160
はええな
マジで?
おれより速い奴がいるなんて興奮して勃起しちゃった
162:デフォルトの名無しさん
09/02/02 21:10:20
>>160
すごいですね!ありがとうございます。
163:デフォルトの名無しさん
09/02/02 21:20:28
>>160
質問者じゃないんだけど
y=1;z=x;
for(i=n;i>0;i>>=1){ ←i>>=1これどういう意味ですか?
if(i%2) y=(y*z)%m; ←これなんでiが偶数のときは処理しないんですか?
z=(z*z)%m;
}
return y;
164:デフォルトの名無しさん
09/02/02 21:31:18
>>163
URLリンク(www2.cc.niigata-u.ac.jp)
165:デフォルトの名無しさん
09/02/02 21:36:58
>>163
>for(i=n;i>0;i>>=1){ ←i>>=1これどういう意味ですか?
iを右に一つシフトした結果をiに代入する。
結果、iが二分の一になる。
166:デフォルトの名無しさん
09/02/02 21:38:49
>>165
>結果、iが二分の一になる。
端数切捨てね。
5(101)→2(10)
167:デフォルトの名無しさん
09/02/02 22:01:27
[1] 授業単元:DirectX研究2
[2] 問題文(含コード&リンク):
サイコロを転がして目を決める。
・テーブルとサイコロを作成する。
・キー操作でサイコロを投げ下ろすように振る。
・落下してきて,1つの目を上にして止まる。
・何度でも遊べる
◎テーブルにサイコロの影がある
◎回転しながら落下してくる
◎自由な方向から見ることができる
◎テーブルの上でサイコロは跳ね,転がる。
◎サイコロとして正しい
URLリンク(pub.idisk-just.com)
を参考にしてよい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC8 or VC9
[3.3] 言語:C/C++どちらでも可
[4] 期限: 2月10日まで
[5] その他の制限:DirectXの課題ですがよろしくお願いいたします。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4270日前に更新/133 KB
担当:undef