[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/13 08:24 / Filesize : 133 KB / Number-of Response : 421
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 122代目



1 名前:デフォルトの名無しさん [2009/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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

前スレ
C/C++の宿題を片付けます 121代目
pc11.2ch.net/test/read.cgi/tech/1230678123/

29 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:10:36 ]
>>17
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8742.txt
これと同じ問題だよね。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8743.txt

30 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:11:31 ]
>>24
オマエ以外の誰がそれを知ってんだよ、バカ

31 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:12:22 ]
>>28
マルチったレッドで回答ついてるだろ。
死ね。

32 名前:デフォルトの名無しさん [2009/01/31(土) 00:22:16 ]
>>29
それとおんなじ問題です。

33 名前:デフォルトの名無しさん [2009/01/31(土) 00:23:01 ]
>>30>>31
すみません。。。

34 名前:デフォルトの名無しさん [2009/01/31(土) 00:29:04 ]
1万個以下の都市間の距離が記録されている。
近い都市どおしをまとめて、n個のグループに分ける。
これわかる人いますか?

35 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:34:37 ]
ワーシャル・フロイト法?

36 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:35:24 ]
>>34
>>1くらい読め
一刻も早く死ね

37 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:40:59 ]
>>34
スレタイと>>1
まともに訊く気があるなら”近い都市どおしをまとめて”って辺りを詳しく



38 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:43:59 ]
>>34
よく見ると、日本語でおkだ・・・
ねたか・・・

39 名前:デフォルトの名無しさん [2009/01/31(土) 01:05:08 ]
すみません。 
都市は円形同サイズで、中心間の距離が記録されています。
2つにわれる場合は、同程度サイズになるようにします。
合併後の都市の中心から橋が離れすぎないようにします。

40 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:06:58 ]
>>39
>>1くらい読め
死ね

41 名前:デフォルトの名無しさん [2009/01/31(土) 01:10:08 ]
>>39
スレタイ嫁
あと、書いた文を人が読んで理解できるかどうかを考えて文を書け
3行目以下が意味不明

42 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:23:32 ]
よく読むと微妙にスレタイ変わってるんだな

43 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:38:02 ]
>>17は結局何が悪かったのかに気づいてないんだろうな。
zipじゃなかったことについて怒られたんだと思ってるよきっと。

44 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:42:58 ]
スレタイだけ読んだってしょうがないだろ
テンプレも読ませないと

45 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:43:01 ]
>>42
重複スレだから仕方ない

46 名前:デフォルトの名無しさん [2009/01/31(土) 02:48:41 ]
[1] 分岐 一次元配列 繰り返し 外部関数
[2] www.pref.fukushima.jp/pc-concours/2008/03/pdf/2007honsen.pdf(問2問3)
[[3] 環境
 [3.1] OS:Windows XP
 [3.2] visual C++
 [3.3] C++
[4] 期限: 2009年2月3日まで]
[5] main関数以外にユーザ定義関数を作成すること。

困ってます。誰か助けてください。

47 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 03:08:02 ]
>>46
スパコン甲子園かと思ったら、パソコン甲子園なんだな・・・



48 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 03:16:41 ]
>>47
高校生が20分掛けずに解くことになっている問題じゃねーか!

49 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 03:20:20 ]
1問あたり20分?

50 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 03:49:05 ]
>>49
予選の問題だろ?
180分で10問だってさ。

51 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 03:52:37 ]
>>50
本選の問題で、240分で12題の配分。

52 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 04:38:32 ]
>>46
こんな?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8791.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8792.txt

53 名前:デフォルトの名無しさん [2009/01/31(土) 05:13:15 ]
>>52
iostreamライブラリ関数(習っていない)を使わないで
入力もscanfをつかって表現できませんか?

実際、C言語習って3か月しかたってないので
基礎しかわかりません・・。

54 名前:デフォルトの名無しさん [2009/01/31(土) 05:28:08 ]
46>>
main関数以外と最後に書いてありますが
main関数も使って結構です。
要するに二つの関数を用いれば結構です。
たびたび、すみません

55 名前:デフォルトの名無しさん [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 05:35:30 ]
>>53
C++なのにiostreamやってないの?
Cなんじゃないの?

57 名前:デフォルトの名無しさん [2009/01/31(土) 05:48:28 ]
>>56まだ習ってないです・・汗



58 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 05:50:34 ]
それは酷いな

59 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 06:23:56 ]
>>55
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8793.cpp

60 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 09:34:30 ]
>>53
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8794.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8795.txt

殆んど意味不明。
>>46には一次元配列と書いてあるが使うところが無いし

61 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 09:50:08 ]
問3は配列を使いたいね

62 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 10:14:54 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8796.txt

63 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:06:46 ]
前スレで回答いただいた者(>>973)ですが、

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8788.c

をコンパイルしたところ、
59: 警告 return type of 'main' is not 'int'

と表示されます。どう直せばよいのでしょうか?

64 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:20:04 ]
>>63
やむを得まい、int main(void) { return0; } にするしかない。

65 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:37:57 ]
>>64
ありがとうございました!

66 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:42:48 ]
>>46
面白い問題だ
制限時間内に全問正解できる自信がないぜw

67 名前:デフォルトの名無しさん [2009/01/31(土) 15:34:18 ]
>>46
高校レベルなの??



68 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:46:13 ]
>>46
プログラムとしてはどうか知らんが
数学的には未解決問題の上に賞金もかけられていたはず

69 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:46:34 ]
>>59
本当にありがとうございます!
すっきりしててわかりやすいです!

70 名前:デフォルトの名無しさん [2009/01/31(土) 15:58:37 ]
>>68
与えられた数字より、小さい数字に出来ることを示せばいい。
たとえば、100から始めたら、99以下になる事を示す。
そうすれば数学的帰納法で全ての数字で成り立つ。

71 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:59:47 ]
>>70
言ってることは尤もなんだが
数学者を馬鹿にしてるのかw

72 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:06:39 ]
>>70
たしかICMで我々人類がこれらの問題を解決するにはまだ十分な準備ができていない発言があったはず

73 名前:デフォルトの名無しさん [2009/01/31(土) 16:11:29 ]
これって1から逆にたどったら、全ての数字が生成出来るのかな。
もし生成出来て、試行回数に応じた出現回数の上限が存在すれば解ける。

74 名前:デフォルトの名無しさん [2009/01/31(土) 16:12:21 ]
間違えた
もし生成出来て、試行回数に応じた出現数字の上限が存在すれば解ける。

75 名前:デフォルトの名無しさん [2009/01/31(土) 16:16:33 ]
1から逆にたどったn回の試行で、f(n)以下の数字が全て生成出来る
という関数f(n)が決定出来れば、解ける。

76 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:16:44 ]
>>73
5 → 16
32 → 16
これを逆にたどるとすると枝が多すぎて解析不能

77 名前:デフォルトの名無しさん [2009/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 名前:デフォルトの名無しさん [2009/01/31(土) 16:25:12 ]
n回の試行でlog_10(n)以下の数字が全て生成出来るは合ってるか?

79 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:29:35 ]
>>76
だな
コラッツ予想の写像がN→Nへの全単射でないからな
どうにもならん

80 名前:デフォルトの名無しさん [2009/01/31(土) 16:43:13 ]
別に、分岐があってもいいんだ。 全ての数字が生成出来るなら1へたどり着けるからな。
n回試行でlog_10(n)以下の数字生成出来るを証明すれば解けるぞ。
この評価は間違ってはいないと思うが。
10^4 = 10000 回試行で4以下を生成すればいいという余裕と思われる評価。

81 名前:デフォルトの名無しさん [2009/01/31(土) 16:50:01 ]
2進数だと、シフト(2倍する)と1を加えるで、全ての数字が生成出来るが
同じような理屈でできないか?

82 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:20:24 ]
>>77
おいおいVBってなんだよw

83 名前:デフォルトの名無しさん [2009/01/31(土) 17:27:03 ]
ろだのPOSシステムの問題どなたかお願いします。

84 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:43:24 ]
>>83
>>1くらいよめ
読む前に死ね

85 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:44:42 ]
>>46
ハミング問題が15点とかきついな。

86 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:11:33 ]
wwwwwwwwwwwwwwwwwwwwww



88 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん [2009/01/31(土) 20:30:39 ]
0TEN

91 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:03:02 ]
>>89
1660円入れて、おつりが1780円?

92 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:06:48 ]
_10とかの変数名見てふと思ったんだけど、
Javaの変数名って日本語文字使えるのん?


93 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:09:04 ]
使えない

94 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:12:49 ]
使えるよw

95 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:16:23 ]
試してみればいいよ

96 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:19:17 ]
まじだ、JAVAのパーサはUNICODEで解釈するのか。

97 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:19:58 ]
あ、やっぱりだめなのね。
わしの持ってる本にはウムラウトとかが許されるって書いてあるから
漢字もできるのかと思った。



98 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:20:43 ]
あれw
使えるの? あはーん?

Visual Studio 2008はJ++廃止されちゃったから試せない。

99 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:17:54 ]
C#は使えるな

100 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:04:09 ]
>>100
まあ、この式をどう読むのかも知らん

102 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:05:40 ]
>>98
J++でできるからといってJAVAでできると言ってしまうのはひどい
逆にJAVAで可能なのかどうかを調べる為にJ++を使用するのもひどい

103 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:06:35 ]
>>91
おつり計算のところ、括弧忘れてるね

104 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:33:56 ]
>>100
ルンゲクッタ使うならこんな感じでいい希ガス
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8797.txt

105 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 12:03:43 ]
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8798.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC2005EE
 [3.3] 言語:C++
[4] 期限:09/02/03迄
[5] その他の制限:問4以外は#include <stdio.h> void main(){  ではじまること。
問1はttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8799.txt
の続きでお願いします。最小値がどうも0になってしまいます。


それではよろしくお願いします。

106 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 13:10:04 ]
>>105
問1はmin=1000ぐらいにしとけ

それより問5が正常に動作していない件について

107 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:19:22 ]
>>105
問1に関して
maxとminを0で初期化するのは適切ではない
2個目のfor文の前で
max=a[0];
min=a[0];
のようにすべき

110 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん [2009/02/01(日) 20:27:47 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8800.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: ([2009年02月2日 20:00まで]
[5] その他の制限:


よろしくお願いします。


113 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:47:23 ]
>>112
式の長さの上限は?

114 名前:デフォルトの名無しさん [2009/02/01(日) 22:14:05 ]
>>113
特にありません

115 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:42:36 ]
【質問テンプレ】
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク): keisan.casio.jp/has10/SpecExec.cgi?path=07000000%2e%93%9d%8cv%8a%d6%90%94%2f01001000%2e%90%b3%8bK%95%aa%95z%2f11003100%2e%90%b3%8bK%95%aa%95z%2fdefault%2exml
上記のリンクの様に、
変数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 mailto:sage [2009/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 名前:デフォルトの名無しさん [2009/02/01(日) 23:48:49 ]
>>107-111
ありがとうございます。
問5はできたのですがそれ以外ができません。
問1は>>109の通りにやったら最小値でました!ありがとうございます。
平均値はどのようにして出せばいいのでしょうか?
それではよろしくお願いします。

119 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 23:53:00 ]
>>118
> 平均値はどのようにして出せばいいのでしょうか?
値を全部足して、それを値の個数で割る

120 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 23:53:40 ]
>>118
>問5はできたのですがそれ以外ができません。
難しくて全く理解できないのか、自分で作ってバグがでるのか、何を求めているのか。
言われなきゃ分からんとはな。

121 名前:デフォルトの名無しさん [2009/02/02(月) 00:12:12 ]
>>119>>120
ごめんなさい。質問する以前の問題でしたね・・・。

問1:全ての値の合計の仕方がわかりません。
問2:>>107を見てやってみたのですがバグが出てしまって、自分で直そうとしたんですが難しくて手のつけようが・・・。
問3:問2を少し弄れば出来そうな気はします
問4:バグがでます

122 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:12:29 ]
あぁ、またsage忘れたorz

123 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:21:37 ]
これはひどい

124 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:39:39 ]
>>121
合計の出し方
sumを0に初期化
2個目のfor文の中でsum+=a[i];

エラーメッセージを貼るなりしてくれないと
どんなバグが出てるのかわからない

125 名前:デフォルトの名無しさん mailto:sage [2009/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 mailto:sage [2009/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 mailto:sage [2009/02/02(月) 01:15:20 ]
>>125
VCでビルドしなかったのは俺のミスだ
sqrt(D)をsqrt((double)D)に直してくれ



128 名前:デフォルトの名無しさん [2009/02/02(月) 01:19:33 ]
>>126
仰るとおりです。申し訳ありません。
>>127
ありがとうございます
できました!

129 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 01:24:31 ]
>>125
>>108>>107の修正分を書いてる。
if( !isupper(user_name[0]) && !islower(user_name[0] ) {

if( !isalpha(user_name[0]) ) {
にする。
一行しかないものは削除






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<133KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef