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


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

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



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; じゃないかな。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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