카드 세장 중복없이 뽑는 코드좀 봐주세요
단순랩퍼
질문 제목 :
여기서 형광펜으로 친부분 소스 코드 어케 짜야할지 알려주세요...
카드를 뽑아야하는데
중복으로 뽑지않는거..어케해야할지..
그리고 두번째 형광펜으로 칠한부분..
/13 이랑 %13 이렇게 해야하는건 대충 감으로 알겠는데 잘모르겠네요..
문제는
¨카드는 총 52 장이다.¨모양은 4가지 hearts, diamonds, clubs, spades 이다.¨번호는 ace(1), 2, 3, 4, 5, 6, 7, 8, 9, 10, jack, queen, king 이다.¨3장의 카드를 중복되지 않게 뽑아서 출력하시오.
이거구요
결과창에요래요래 나오게 하려구하는데요
질문 내용 : include stdio.h
#include stdlib.h
#include time.h
enum enumsuit {hearts, diamonds, clubs, spades};
enum enumface {ace, deuce, three, four, five, six, seven, eight, nine, ten, jeck, queen, king};
typedef enum enumsuit enumsuit;
typedef enum enumface enumface;
void pntcard(int card);
void pntface(enumface face);
void pntsuit(enumsuit suit);
void main()
{
int card1, card2, card3;
srand(time(null));
card1 = rand()%52;
card2 = rand()%52;
card3 = rand()%52;
//selct card2 and card3
printf(%d%d%d\n\n,card1,card2,card3);
printf(1st card\n);
pntcard(card1);
printf(2nd card\n);
pntcard(card2);
printf(3rd card\n);
pntcard(card3);
}
void pntcard(int card)
{
enumsuit suit;
enumface face;
suit=
face=
//작성
pntface(face);
printf(of);
pntsuit(suit);
printf(\n);
}
void pntsuit(enumsuit suit)
{
switch(suit)
{
case 0:printf(hearts); break;
case 1:printf(dianonds); break;
case 2:printf(clubs); break;
case 3:printf(spades); break;
}
}
void pntface(enumface face)
{
switch(face)
{
case 0:printf(ace); break;
case 1:printf(deuce); break;
case 2:printf(three); break;
case 3:printf(four); break;
case 4:printf(five); break;
case 5:printf(six); break;
case 6:printf(seven); break;
case 7:printf(eight); break;
case 8:printf(nine); break;
case 9:printf(ten); break;
case 10:printf(jack); break;
case 11:printf(queen); break;
case 12:printf(king); break;
}
}
-
아서 2024-01-04
suit = card / 13;
face = card % 13; -
슬옹 2024-01-04
rend함수쓰시고
Switch문으로 비교하되 While로서
같은중복 계열이 전배열변수에 포함되면 Loop돌려가며 안나올때까지;; -
잎새 2024-01-04
수많은 방법중에 스왑을이용한 방법이있는데 선택된카드를 배열 맨앞이나 맨뒤로 스왑해서 포문세번돌때 각각하신방법으로계산해서 앞으로하셨으면 다시시작할때 1증가해줘서시작하도록 하고 배열뒤로하신경우 1감소해주시면도겠습니다