• ベストアンサー

C++の古い課題の解答例

http://www.ialab.is.tsukuba.ac.jp/~maeda/jks/projo/2001/q8.html このページの最後のほうにある、設問1~3を考えていたのですが、いまいちよくわかりませんでした・・・ で、解答例を見ようと思ったのですが、ページが古いのか、回答例のページが表示されません。 よろしければどなたか分かる方解答例を挙げていただけないでしょうか・・・ よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

一応全部書いてみました。 もっと効率のいい書き方があると思いますが、その辺りは自分で考えてください。 void init_card(struct card deck[52]){ int index = 0; for(int suit = 0; suit < 4; suit++){ for(int num = 1; num < 14; num++){ switch(suit){ case 0: deck[index].suit = clubs; break; case 1: deck[index].suit = diamonds; break; case 2: deck[index].suit = hearts; break; case 3: deck[index].suit = spades; break; } deck[index].pips = num; index++; } } } void shuffle_and_deal(struct card deck[52], struct card hand[NPLAYERS][5]){ for(int index = 0; index < 52; index++){ card swap_card; int swap_index = rand() % 52; swap_card.pips = deck[index].pips; swap_card.suit = deck[index].suit; deck[index].pips = deck[swap_index].pips; deck[index].suit = deck[swap_index].suit; deck[swap_index].pips = swap_card.pips; deck[swap_index].suit = swap_card.suit; } int card_index = 0; for(int hand_cards = 0; hand_cards < 5; hand_cards++){ for(int players = 0; players < NPLAYERS; players++){ hand[players][hand_cards] = deck[card_index]; card_index++; } } } int pipscomp(const void* pips1, const void* pips2){ return *((int *)pips1) - *((int *)pips2); } int is_straight(struct card h[5]){ int pips[5]; for(int index = 0; index < 5; index++){ pips[index] = h[index].pips; } qsort(pips, 5, sizeof(int), pipscomp); if((pips[4] - pips[0]) != 4){ return 0; } for(int index = 0; index < 4; index++){ if((pips[index] + 1) == pips[index + 1]){ return 0; } } return 1; } int is_flush(struct card h[5]){ int result = 1; card_hands suit = h[0].suit; for(int index = 1; index < 5; index++){ if(h[index].suit != suit){ result = 0; break; } } return result; } int count_pips(struct card h[5]){ int count = 0; int pips[14]; for(int index = 1; index < 14; index++){ pips[index] = 0; } for(int index = 0; index < 5; index++){ pips[h[index].pips] = 1; } for(int index = 1; index < 14; index++){ count += pips[index]; } return count; } int is_fullhouse(struct card h[5]){ if(count_pips(h) != 2){ return 0; } int pips[5]; for(int index = 0; index < 5; index++){ pips[index] = h[index].pips; } qsort(pips, 5, sizeof(int), pipscomp); if(pips[0] != pips[1] || pips[3] != pips[4]){ return 0; } return 1; }

windywatery
質問者

お礼

長々と回答していただきありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • katouka09
  • ベストアンサー率50% (130/256)
回答No.2

これって筑波大学の学生向けのページでしょ。 回答例の部分ってリンク切れになっていて、 おそらく学生の講義の課題として出されているので、 わざと削除しているのでは? どうしても知りたければ、課題を出している筑波大学の 先生に質問するのがいいのでは? 参考URLを参照。 筑波大学の学生以外の人から質問されて答えてくれるかは 不明ですが。

参考URL:
http://www.ialab.is.tsukuba.ac.jp/~maeda/jks/projo/2001/
全文を見る
すると、全ての回答が全文表示されます。
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

とりあえず1番だけ void init_card(struct card deck[52]) { int i,j; int cnt = 0; for( int i = 1 ; i <= 13 ; i++ ){ for( j = 0 ; j < 4 ; j++ ){ deck[cnt].pips = i; deck[cnt].suit = (card_hands)j; cnt++; } } }

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Yahooオークションでの質問と解答

    Yahooオークション初心者です Yahooオークションで当方の出品物へ2人の方から質問が来たのですが 質問1はメルアドが記載されていましたのでメールで直に解答しました 質問2はQ&Aからの質問でしたので、質問2のみQ&Aから解答しました ですが、当方のページでは 1ページ中1ページ目を表示(質問合計:2件) 質問1 投稿者: XXXXX 質問2 投稿者: XXXXX 回答2 投稿者: XXXXX となっています 何故質問1までが公開されるのですか? 当方は質問2にしか解答していないと思うのですが・・・ ちなみにオークションは終了で削除済みです

  • 英作問題解答例に関して二点質問があります

    【問題】 言葉はあまりに身近にあるので、その存在を忘れてしまうことさえある。しかし、病や事故などで言葉に 不自由を感じるようになって、初めてその存在の大きさに気づくことがあるだろう。 【英訳し易いように変えた日本文】 言葉はあまりになじみ深いので、私たちはそれを忘れてしまうことさえある。しかし、病や事故のために 言葉をうまく使えないようになって、初めてそれがいかに大切かに気づくだろう。 【解答例】 Language is so familiar to us that we even forget it. But it is not until you cannot use it well because of illness or accident that you realize how important it is. 問題、解答例等は上記のようになっていました。 一つ目の質問は、accident に冠詞を付けて、an accident にする必要はないのでしょうか。 二つ目の質問は、第一文で we が使われているのですが、なぜ第二文は you となっているのでし ょうか。we または you で統一はできないのでしょうか。 分かる方がいらっしゃいましたら回答よろしくお願いいたします。

  • 生物学の問題です。いい例がわかりません。

    生物学の問題です。いい例がわかりません。 大脳の場所による働きの違いがあることを、どういうことからわかったかを、例をあげて記述せよ。 よろしくおねがいします。 てんかん患者がロボトミー手術で、海馬を切除したら、短期記憶ができなくなったっというのは、この設問の解答になってますか?

  • 建設業経理事務士2級の試験解答欄について

    昨日、建設業経理事務士2級を受けたのですが、そのうちの設問3で疑問があります。最後に補助部門費を施工部門費に直接配賦で配賦するのですが、最後のそれぞれの合計欄を書く解答欄が桁が足らない部分がでてくるように思ったのですが、、、。私が間違っているのでしょうか?見直してもわからなかったので、ちゃんと書けなかったのですが、受けた方でわかる方いらっしゃったら、教えていただけないでしょうか? よろしくお願いいたします。

  • 英作文で参考書の解答例と違ったのですが

    2つ質問させて下さい。 1、しかし、もっと大切なことは、自分の行動に責任を持ち、人に迷惑をかけない常識を身につけることである。 But,a more important factor is to be responsible for what you do and to have enough common sense that doesn't bother other people. 参考書の解答例では、factor→thing。andが結ぶものがto have→have。enough common sense that~→ enough common sense not to~。になっていましたが、私の解答でも問題はないでしょうか? 2、彼は小説を2冊貸してくれたが、どちらもまだ読んでいません。この2週間、試験準備で忙しかったからです。 Even though he lent me two novels, I have not read either of them because I have been busy studying for exam for two weeks. 参考書の解答例では、even thoughでなく、butでつなぎ(novels,but)、becauseでなく一つの文としてthem. I haveとなっていましたが、私の解答でも問題はないでしょうか?

  • 相当算について、僕よりスマートな解答をしてください

    問題文:花子さんはある本を読みました。最初の日に全体のページ数の1/5を読みました。2日目に残りの1/8を読み、その後5日目までは、2日目と同じページ数で読みました。5日目に読み終えたとき、残りは164ページでした。花子さんが読んだ本は全部で何ページありますか? 僕の解答: 1:164ページが4/8に対応しているから、1/8=164÷8=41ページ。 2:最初の日に読んだ1/5の残り4/5について、4/5=8/8だから、 4/5に対応するページ数は41×8=328 1/5に対応するページ数は328÷4=82 全体のページ数は、5×81=410 質問:これよりスマートな回答があれば、ご指摘お願いします。 ちなみに、方程式とか中学生以上の範囲での回答はご遠慮くださいますようお願い申し上げます。 僕の解答はまどろっこしいので、、もっとスマートな解答をしたいのです。

  • 数1の問題で解答を見ても全くわかりません。

    数1の問題で解答を見ても全くわかりません。 教えていただけないでしょうか? Q X2+Y2+4Xのとき、「X2+3Y2」の最大値、最小値を求めよ。 ※ X2(エックス二乗です。) 3Y2(3エックス二乗です。) という問題なんですが、途中までわかるのですが、 最後のXの範囲の求め方がわからないです。 解答では、 Y2≧0だから、-4≦X≦0となる、って書いてあるんですけど なんでそうなるのか全然わかりません。 ご教授おねがいします。

  • 英作文の解答例に疑問が......

    何気なく接しているために、音は空気のように「あって当たり前」のものとして扱われているのだ。しか し、同じ音でもそのときの気分により、安らぎを感じたり、逆に神経を逆なでされたりする。音とは、人の 心を左右する摩訶不思議な存在だ。 Since you are constantly exposed to sounds without realizing it,they are taken for granted, like air. But the same sound may relax you or get on your nerves, depending on your feelings. Sound is a mysterious thing that can influence how you feel. 問題と解答例は上のようになっていました。第一文の realizing it の it は sounds を受けているの で them だと思うのですがどうでしょうか。 次に、第一文が sounds と複数形なのは分かるのですが、なぜ第二文は the same sound と単数 形なのでしょうか。ここも複数形で the same sounds としてはいけないのでしょうか。 最後に、第三文の Sound を複数形にするのは問題あるでしょうか。何となく単数形が適切だとは思う のですが説明はできないです。説明できる方がいらっしゃいましたら回答よろしくお願いいたします。

  • 解答を作りましたので、是非添削していただきたいのです。よろしくお願いします。

    次の英文を読んで設問に答えなさい。 というどこかの入試問題です。1  Why is quick-frozen food almost as good as fresh food?  The micro-organisms which spoil food cannot grow or multiply at sub-zero temperatures. (1)【Most of our food consists of animal or plant cells containing a high proportion of water.】 (2)【If the food is frozen     gradually, the water expands and forms large crystals of ice.】 These crystals burst the cell membranes and destroy the structure of the food. When the ice melts、 the water runs out and most of the essential vitamins and proteins are lost. If the food is frozen quickly、smaller ice crystals are formed and the cell membranes are not broken. (3)【The greater the water content of food, the more difficult it is to freeze successfully.】  2 How is food frozen.  There are three ways of freezing food quickly. It can be done by placing the food on metal plates which  have been cooled below -30℃. It can be frozen by placing it in an insulated container and blasting it at high speed with air cooled below -30℃. Or it can be cooled in a salted liquid such as brine at a temperature between  -30℃ and -40℃. It must then be stored at a temperature below freezing point until it is needed. (4)【This is why insulated containers must always be used for the transport of frozen food.】  (設問1)(1)【 】の英文を日本語に訳しなさい。 (設問2)(2)【 】の英文を日本語に訳しなさい。 (設問3)(3)【 】の英文を日本語に訳しなさい。 (設問4)(4)【 】の英文を日本語に訳しなさい。 (設問5)本文中に述べられている三通りの急速冷凍の方法を日本語で列挙せよ。 解答 1 われわれの食べ物のほとんどは、水分を多く含む(動物や植物の)細胞でできている。 解答2 もし、その食物がだんだん凍っていったら、水(水分)は膨張し、大きな氷の結晶を形作ります。 解答3 その水が、食物を 大きく取り囲んでいればいるほど、うまく凍らせるのはますます難しくなる。 解答4 冷凍食品を輸送する際に、断熱容器が必ず使われなければならない(必ず使われているのは) このためです。 解答5 * 食べ物を、-30℃以下に冷やされた鉄板の上におく。 * 食べ物を断熱容器の上に置き、-30℃以下に冷やされた空気をハイスピードで吹き付ける。 * たとえば塩水のように、塩漬けの個体の形で、-30℃と-40℃の間の温度で凍らせる。 よろしくお願いします。

  • どういう解答をすればよいのかわかりません

    問題の意味とどういう解答をすればよいのかわかりません。 高校数学(1)の範囲だと思います。そのまま問題を書きます。 次の例を1つ書け。 1)自然数の範囲で、減法ができるとは限らない例。 2)整数の範囲で、除法ができるとは限らない例。 ↑どういうことでしょうか。 自然数が正の整数であることはわかります。 整数は正の整数・負の整数・0のことであることもわかりました。 減法は引き算のこと、除法が割り算のこともわかります。 でも、この問題の意味というか答え方とかわかりません。 知っている方・わかる方解答・解説お願いします。