发牌问题

来源:互联网 发布:mac网线转接头怎么联网 编辑:程序博客网 时间:2024/05/16 05:44

问题描述:输入参加的人数,和每人分的牌的数目,除去大小王,发牌不能重合。

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>int a[53];int Random(){    return (rand() % 52 + 1);}int Judge(int rea){    int color;  //花色    int num;    //数字    char p[4];    if(a[rea] != 0)    {        color = (rea-1) / 13;        num = rea % 13 + 1;        switch (color)        {        case 0:                strcpy(p,"黑桃");            break;        case 1:                strcpy(p,"红桃");            break;        case 2:                strcpy(p,"梅花");            break;        case 3:                strcpy(p,"方块");            break;        default :            break;        }        printf("%s%d  ",p,num);        return 0;    }    else        return 1;}void Card(int per,int card){    int i,j;    int rea;    //随机数    for(i=0; i<per; i++)    {        for(j=0; j<card; j++)        {            rea = Random();            //判断是否发牌重复            while(Judge(rea))            {                rea = Random();            }            a[rea]=0;        }        printf("\n");    }}int main(){    int i;    int num_per,num_card;    scanf("%d",&num_per);    scanf("%d",&num_card);    srand(time(NULL));    for(i=0; i<=53; i++)    {        a[i] = i;    }    Card(num_per,num_card);    return 0;}


0 0
原创粉丝点击