一副牌有52张,把牌分给四个人,请设计一个程序完成自动发牌工作.要求不能有重复牌,

一副牌有52张,把牌分给四个人,请设计一个程序完成自动发牌工作.要求不能有重复牌,

//对我的回答有什么疑问或要求,可以Hi我。//模拟发牌程序,供参考://算法:用随机数模拟洗牌。产生两个1~54之间的随机数,然后交换对应的两张牌。//洗牌模块非原创#include #include #include int main() { int i,temp,r; int pk[52]={ 101,102,103,104,105,106,107,108,109,110,111,112,113, 201,202,203,204,205,206,207,208,209,210,211,212,213, 301,302,303,304,305,306,307,308,309,310,311,312,313, 401,402,403,404,405,406,407,408,409,410,411,412,413}; printf("\n"); srand((unsigned int)time(NULL)); for(i=0;i<51;i++) //洗牌 { r=rand()%(51-i)+i+1;//加1为了洗最后一张牌 temp=pk[i]; pk[i]=pk[r]; pk[r]=temp; }int k=1; for(i=0;i<52;i++)//输出每家的牌 { if(i%13==0)printf("\n第%d家的牌:",k++); switch(pk[i]/100) { case 1:printf(" \003");break;//黑桃 case 2:printf(" \006");break;//红桃 case 3:printf(" \005");break;//梅花 case 4:printf(" \004");break;//方块 } switch(pk[i]%100) { case 1:printf("%-2c",'A');break; case 11:printf("%-2c",'J');break; case 12:printf("%-2c",'Q');break; case 13:printf("%-2c",'K');break; default:printf("%-2d",pk[i]%100);break; } } printf("\n"); return 0;} http://hi.baidu.com/mayadong7349/blog/item/3a1a850daab061e7aa645769.html