这个C程序怎么做啊?请高手支招!

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:46:09
模拟洗牌和发牌过程。一副扑克有52张牌,分为4种花色(Suit):黑桃(Spades)、红桃(Hearts)、草花(Clubs)、方块(Diamonds)。每种花色又有13张牌面(Face):A、2、3、4、5、6、7、8、9、10、Jack、Queen、King/编写程序完成洗牌和发牌过程。
推荐步骤:
(1)声明结构体,定义结构体数组变量card[N]。
(2)将扑克牌按循序放在结构体数组中。
(3)将计数器i清零。
(4)产生一个1~52的随机数字m,将card[i]和card[m]互换。
(5)计数器i加1,判断i是否大于52,如果否,回到(4);如果i>52,结束循环。
(6)输出结果。

怎么写啊?请高手支招!-------VC的初学者!

帮你写了一个,自己分析下吧 很好理解

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>

/* 代表花色 */
char *suit[4] = {"Spades","Hearts","Clubs","Diamonds" };

/* 代表牌面 */
char *face[] = {"A","2","3","4","5","6","7","8","9","10","Jack","Queen","King" };

/* 代表一张牌 */
typedef struct Card{
int suit;
int face;
} CARD;

/* 输出这副牌 */
void printCards(CARD cards[]){
int i;
for(i = 0;i < 52;i++){
printf("[%s:%s]\t",suit[cards[i].suit],face[cards[i].face]);
if((i + 1) % 4 == 0) printf("\n");
}
}
int main(){
int i,index;
CARD tmp;

/* 初始化这副牌,按花色,牌面顺序 */
CARD cards[52] = {
0,0,0,1,0,2,0,3,0,4,