🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

395閲覧

printcard()関数内のd,c,kがそれぞれ何を表しているかを教えていただきたいです。

kiri-to

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/12/03 12:47

編集2020/12/06 06:07

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

void printcard(int *card, int n)
{
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
if (card[i] > card[j]) {
int t = card[i]; card[i] = card[j]; card[j] = t;
}
for (int d = 4, i = 0; i < n; i++) {
int c = card[i] / 13, k = card[i] % 13;
if (c != d) printf("\n%c:", "SHDC"[c]), d = c;
printf(" %c", "AKQJT98765432"[k]);
}
printf("\n");
}

int main()
{
int card[52];

for (int i = 0; i < 52; i++) card[i] = i; for (int i = 0; i < 52; i++) { int r = rand() % 52; int t = card[r]; card[r] = card[i]; card[i] = t; } printcard(card, 13); printcard(card + 13, 13); printcard(card + 26, 13); printcard(card + 39, 13); _getch(); return 0;

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/12/03 14:05

なにをするコードなんでしょうか
kiri-to

2020/12/03 16:07 編集

コメントありがとうございます。52枚のトランプを4人に配るコードです。C++です。Visual Studioで行います。
archiver

2020/12/05 08:39

なんでタグが「include」なん?的外れなものを付けるから回答もつかなければ、こうした追記・修正の依頼も付かないんじゃない。「C++」のタグがちゃんとあるので、回答を得たいならば、付け替えた方がいいよ。
kiri-to

2020/12/06 06:08

ご指摘ありがとうございます。
dodox86

2020/12/06 06:57

実際にご自分で、動かしてみましたか?
kaina

2020/12/10 00:38

あなたは何を目的にやっているのですか? 恐らく学校の課題、会社の研修課題、ネットのプログラミング学習サービスの課題の いずれかと思われますが問題の回答を出すことが目的になっていませんか? それは大きな勘違いでプログラムで飯を食べていく為のスキルを身に着けることが 目的なのではないでしょうか? そうであれば、どこから拾ってきたプログラムかは分かりませんが、そのプログラムが どのようなことをやっているかを考えるということも身に着けるべきスキルの中の一つです。 それを他人に聞いて果たして身に着けることが出来るでしょうか? 少なくとも私は身に着けることが出来ないと思います。
kiri-to

2020/12/10 04:39

kainaさん その通りだと本当に感じました。力不足な部分を補うために基礎からやり直そうと思います。ありがとうございます。
guest

回答1

0

まずはどう解いていくかというところからかな。

変数ckがどういった使われ方をしているか。
まずcにはcardの要素を13で割った値が入るね。kにはcardの要素を13で割った余りが入る。cardの各要素はmain関数で051の値が入ってる。ここでこの問題はトランプを題材にしたものだけど、トランプで13と言えば…。
ちなみに、cには0~3の4種類の値、kには0~12の13種類の値が入る。
(コード中にも答えはあるけどね)

で、dはコード中に

C++

1d = c;

という処理があるので、cと同内容の変数であることがわかる。

こんな感じに追っていけば、見えてくると思うよ。

投稿2020/12/05 09:01

編集2020/12/09 15:02
archiver

総合スコア1567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kiri-to

2020/12/06 06:37

コメントありがとうございます。 d=c という処理があるのでdも 0~12の13種類の値を表わしている ということで大丈夫ということですか?
archiver

2020/12/09 15:06

ごめん、cとkが取り得る値の範囲の説明が逆でした。 (回答の方も修正済み) なので、dが取り得る値の範囲は0~3ということになります。 後は、cとkがどこで使われているかを見てみよう。そうすると、何を意味しているのかが見えてくると思うよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問