|
10啊哈币
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct card{
char *face;
char *suit;
};
void filldeck(struct 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(struct card *wdeck)
{
int i,j;
struct card temp;
for (i=0;i<52;i++){
j=rand()%52;
temp=wdeck[i];
wdeck[i]=wdeck[j];
wdeck[j]=temp;
}
}
void deal(struct card *wdeck)
{
int i;
putchar('\n');;
for(i=0;i<52;i++)
printf("%2s of %-8s %c",wdeck[i].face,wdeck[i].suit,(i+1)%2?'\t':'\n');
}
void main()
{
struct card deck[52];
char *face[]={"A","K","Q","G","10","9","8","7","6","5","4","3","2"};
char *suit[]={"Heart","Diamonde","Club","Spade"};
srand(time(NULL));
filldeck(deck,face,suit);
shuffle(deck);
deal(deck);
sleep(500000);
return 0;
}
|
最佳答案
查看完整内容
随机顺序打印出52张扑克牌,思路很好~只有两个小问题~
第一,你的主函数为void,不应该有返回值,去掉return语句。
第二,你用了sleep()函数,却没有包含头文件,这个头文件具体视编译器而定~
|