- 1 名前:デフォルトの名無しさん [2010/10/13(水) 23:03:19 ]
- あなたが解けない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++の宿題片付けます 140代目 hibari.2ch.net/test/read.cgi/tech/1284632294/
- 2 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:48:47 ]
- 前スレの991へ
int combi(int n, int k) { int answer, i, j; if (i < 30) { answer = 1; これコンパイルしたら「初期化されてない i が使用されます」って警告されたぞ 確かにバグっていると思わないか?
- 3 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:50:55 ]
- >>2
n < 30の間違いでした すいません
- 4 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:56:19 ]
- 1: 1
2: 2 3: 3 4: 6 〜途中省略〜 31: 300540195 32: 601080390 33: 1166803110 34: -1961361076 35: 481209656 36: 962419312 こんな感じで i==34 になったらオーバーフローしてるな 続行するには何かキーを押してください . . .
- 5 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:58:19 ]
- __int64使えばいいんじゃね?
- 6 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:59:31 ]
- それ、33は合ってるし34の答えはオーバーフローしない値だし偶数の時は1つ前の値を2倍してるだけなのに
なぜ狂うんでしょうか
- 7 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:01:27 ]
- intMaxが
2147483647 C(34,17)は 2333606220 だからこれでいいんじゃね あと全部再帰で書いたほうがきれいだと思う。
- 8 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:02:11 ]
- >>6
いや、オーバーフローする値だぞ
- 9 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:03:52 ]
- これだと i == 66 まで行ける
long long combi(long long n, long long k) { long long answer, i, j; if (n < 30) { answer = 1; for (i = n, j = 1; i >= n - k + 1; i--, j++) { answer *= i; answer /= j; } return answer; } else if (n % 2) { return combi(n - 1, (n - 1) / 2) / (n / 2 + 1) * n; } else { return combi(n - 1, (n - 1) / 2) * 2; } } int main(void) { int i; for (i = 1; i < 100; i++) { printf("%d: %lld\n", i, combi(static_cast<long long>(i), static_cast<long long>(i / 2))); } return 0; }
- 10 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:05:00 ]
- >>9
>出力も%dのみでお願いします
- 11 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:05:43 ]
- intしかだめらしいぞ
- 12 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:06:57 ]
- なぬー多倍長ライブラリも使っちゃだめなのか
- 13 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:07:33 ]
- >>7
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10946.txt こうでしょうか
- 14 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:07:34 ]
- 別にintがオーバーフローすればいいなら
もうこれでいいだろ
- 15 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:09:19 ]
- >>8
そうでしたか int型は2^32(?)までおkみたいな話を聞いたようなきがしてて 勘違いでした
- 16 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:11:24 ]
- >>13
> int answer, i, j; これは不要だね どちらにしろ i == 33 までしか計算できないようだ
- 17 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:11:51 ]
- カレンダー算出の課題まだー?
- 18 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:14:26 ]
- >>15
2^31だろ 2^32まで行けるのはunsigned
- 19 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:21:11 ]
- 誰かカーマイケル数求めるプログラム書いてよ
- 20 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:24:20 ]
- >>19
ここにあるじゃん matsumoto-lab.hp.infoseek.co.jp/chapter03/algo04.html
- 21 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:25:55 ]
- >>15
符号無しで2^32 - 1までおk
- 22 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:37:30 ]
- 口頭で説明されたものを書くので分かりづらかったらごめんなさい
【質問テンプレ】 [1] 授業単元:プログラミングU [2] 問題文(含コード&リンク): 5種類の通貨(a,b,c,d,e)が存在する 最初に幾らかのお金を渡されるそのお金はa,b,c,d,e以外にも aとしてもbとしても使えるものbとしてもdとしても使えるものなどがある そのお金を持って商品を買うが商品には特定の通貨しか使えない ただし、a,bどちらでも払える商品やb,dどちらでも払える商品もある それらの商品の合計が渡されるのでソレを手持ちのお金で変えるかどうかを答えよ 合計は配列p[15]として辞書順で与えられる(例えばaで払えるものp[0]bとcで払えるものはp[7]) ex)p={3,2,0,0,0,0,2,0,0,0,0,0,0,0,0} だとa=3,ab=2,bc=2なので 手持ちが{5,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0} a=5,b=2ならはらえる [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC++2010 [3.3] 言語: C++ [4] 期限: 来週の金曜まで [5] その他の制限: 考え方だけ教えてもらえれば頑張ります。
- 23 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:45:54 ]
- >>22
すごい読むのに苦労したw えーとpと手持ちの額を受け取ってboolを返す関数を考えればいいのかな あと配列の大きさ的にa,b,cで使えるお金とa,b,cでを使える商品はないんだよね? なんか力づくでループ回せばイケそうだけど
- 24 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 02:50:46 ]
- >>23
>すごい読むのに苦労したw すんません;;pdfとか置いといてくれればいいんですがなぜか毎回口頭なんですよね >えーとpと手持ちの額を受け取ってboolを返す関数を考えればいいのかな >あと配列の大きさ的にa,b,cで使えるお金とa,b,cでを使える商品はないんだよね? 多分そうだと思います >なんか力づくでループ回せばイケそうだけど もうちょっとヒントくれませんか、力ずくでも何でも解きたいので
- 25 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 05:14:31 ]
- 辞書順の並びってループまわすのもやっかいだな
- 26 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 05:39:45 ]
- あーなんかめんどくさそうだな
今必要十分条件べた書きしようとしたら多すぎて秋田
- 27 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 07:38:10 ]
- 完全数を求める課題もこいやー!
- 28 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 11:37:23 ]
- >>22って
与えられた合計から払える手持ちの組み合わせを全て出せってことじゃなくて 合計と手持ちが与えられて その手持ちで払いきれるかどうかを出せば良いんだよね
- 29 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 11:41:36 ]
- >>22
a, ab, ac, ad, ae, b, bc, bd, be, c, cd, ce, d, de, e なら bc は p[6] なんだが問題文の書き間違い?
- 30 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 11:43:51 ]
- >>29
ex)を見ればp[6]のミスだってことはわかるだろ
- 31 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 11:47:39 ]
- 所持金が
{0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} ab=100 商品が {0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0} bc=100 であるとき支払いは可能?不可能?
- 32 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 11:50:17 ]
- 可能だろ
- 33 名前:デフォルトの名無しさん [2010/10/14(木) 14:26:27 ]
- [1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): このビット演算子のプログラムが何をしているのか1行ごとにコメントをつけてください。 お願いします。 int main() { int i, d; d=0; while(1) { printf("Input number "); scanf("%d", &d); if(d == 0){break;} if(d > 8 || d < -8) printf("error\n"); else if(d > 0) i=i|1 << d - 1; else i &= ~(1 << -d - 1); printf("%d%d%d%d%d%d%d%d\n",i>> 7&1,i>> 6&1,i>> 5&1,i>> 4&1,i>> 3&1,i>> 2&1,i>> 1&1,i&1); } return 0; } [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限:とくになし [5] その他の制限:
- 34 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 14:28:51 ]
- 本当に宿題なのか
- 35 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 14:29:19 ]
- 断る。
- 36 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 14:33:11 ]
- 前スレの回答をそのまま提出したけど、説明してみろって言われて困ったってオチ?
- 37 名前:デフォルトの名無しさん [2010/10/14(木) 15:50:29 ]
- 日の丸の国旗を表示するプログラムを教えてください。
- 38 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 15:51:23 ]
- #include<stdio.h>
int main(void) { printf("日の丸の国旗"); return 0; }
- 39 名前:デフォルトの名無しさん [2010/10/14(木) 15:59:36 ]
- >38
日の丸の画像です
- 40 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 16:06:21 ]
- #include<stdio.h>
int main(void) { printf("日の丸の画像"); return 0; }
- 41 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 16:10:38 ]
- >>40
ちがいます 日の丸の絵を表示してほしいんです
- 42 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 16:34:54 ]
- マルチかよ
- 43 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 19:03:19 ]
- #include<stdio.h>
int main(void) { printf("日の丸の絵"); return 0; }
- 44 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 19:11:53 ]
- もういいです
あなたたちの国語力の無さには呆れてものが言えません 一生パソコンと戯れててください
- 45 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 19:23:52 ]
- >>44
そもそもあなたに国語力がないから、スレチでこうなっていると気づけよ。
- 46 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 19:28:39 ]
- #include<stdio.h>
int main(void) { printf("┌───┐\n│ ● │\n└───┘"); return 0; } こういうことじゃね?
- 47 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 20:18:11 ]
- >>44
環境は? せめて Windows XP とか Max OS X とか X Window とかくらいはいってくれないと、プログラムの書きようもないですよ。
- 48 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 20:28:54 ]
- printf("hinomaru.jpg");
って出来るとすばらしい。
- 49 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 20:32:53 ]
- じゃあ、こうだ
ただしWindows専用 #include <stdio.h> #include <stdlib.h> int main ( void ){ system ( "MSPAINT.EXE hinomaru.jpg" ) ; return 0 ; }
- 50 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 20:34:02 ]
- FORMAT.EXEの方がいいかも
- 51 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 20:58:24 ]
- Windows限定、関連付け期待で
#include <stdio.h> int main() { system("start hinomaru.jpg"); return 0; }
- 52 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 21:16:00 ]
- >>51
system は stdlib.h じゃなかったっけ。
- 53 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 21:28:22 ]
- >>52
そうでした。 #include <stdio.h> #include <stdlib.h> <-追加 int main() { system("start hinomaru.jpg"); return 0; }
- 54 名前:デフォルトの名無しさん [2010/10/14(木) 23:50:09 ]
- >>33
変数 i が初期化されないで使われているけど、そもそもそのプログラムは正しいの? d =0; じゃなくて i = 0; じゃないかな。
|

|