结构体优化示例

摘自老师的PPT

(还没细看,先放着)

在这里插入图片描述

#include<stdio.h> 
#include<stdlib.h> 
#include<time.h> 
struct card{
   char * face;
   char * suit;
};

typedef struct card Card;

void fillDeck(Card * wDeck,char * wFace[],char * wSuit[]);
void shuffle(Card * wDeck);
void deal(Card * wDeck);
int main(void)
{
   Card deck[52];   //声明一个结构数组,存放扑克牌
 
   char * face[]={"Ace","Deuce","Three","Four","Five",
                  "Six","Seven","Eight","Nine","Ten",
                  "Jeck","Queen","King"};
   char * suit[]={"Hearts","Diamonds","Clubs","Spades"};
   
   srand(time(NULL));//定义并初始化指针数组


   fillDeck(deck,face,suit); //初始化一副牌
   shuffle(deck); //洗牌
   deal(deck);  //发牌

   return 0;
}
void fillDeck(Card * wDeck,char * wFace[],char * wSuit[])
{ 
     int i;
     i=0;
    for(suit=0;suit<=3;suit++)
         for(face=0;face<=12;face++){
              wDeck[i].suit=wSuit[suit];
              wDeck[i].face=wFace[face];
              i++;
   }
}
void fillDeck(Card * wDeck,char * wFace[],char * wSuit[]) //初始化发牌
{ 
     int i;
     for(i=0;i<52;i++){
          wDeck[i].face=wFace[i%13];
          wDeck[i].suit=wSuit[i/13];
     }
}
void shuffle(Card * wDeck) //洗牌
{
   int i, j;
   Card temp;
   
   for(i=0;i<52;i++){
       j=rand()%52;
       temp=wDeck[i];
       wDeck[i]=wDeck[j];
       wDeck[j]=temp;
   }
}
/*洗牌思路:每张牌都和随机抽取的另外一张牌交换一次*/
void deal(Card * wDeck)//发牌
{
   int i;
   for(i=0;i<52;i++){
      printf("%5s of %- 8s%c",wDeck[i].face,
                 wDeck[i].suit,  (i+1)%2?'\t':'\n');
   }
}

//发牌
int a[n]与动态申请的差别

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值