C语言编程问题请教 10

一副扑克牌,不包含大小王,有红桃(hearts)、黑桃(spades)、方片(diamonds)、梅花(clubs)四种花色,每种花色有A、2、3、4、5、6、7、8、9... 一副扑克牌,不包含大小王,有红桃(hearts)、黑桃(spades)、方片(diamonds)、梅花(clubs)四种花色,每种花色有A 、2、3、4、5、6、7、8、9、10、J、Q、K十三张牌。编写程序将一副牌随机发给4个玩家,对玩家手中的牌按花色和点数进行排序后显示发牌结果。

要求:
1)在《算法描述》中填写实现算法。
2)在源代码中编写必要的注释。
思考:
你的发牌算法是最优化的吗?
展开
 我来答
if渲染
2012-12-09 · 超过27用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:68.7万
展开全部
代码贴给你,注释什么的就不写了,太麻烦。
#include <stdio.h>#include <stdlib.h>
#include <time.h>

void show(int n){
switch (n)
{
case 1:
printf("%c", 'A');
break;
case 11:
printf("%c", 'J');
break;
case 12:
printf("%c", 'Q');
break;
case 0:
printf("%c", 'K');
break;
default:
printf("%d", n);
break;
}
}

void sort(int* n){
for (int i = 1;i < 13;i++)
for (int j = 0;j < i;j++)
{
int temp;
if (n[i] < n[j])
{
temp = n[i];
n[i] = n[j];
n[j] = temp;
}
}
}

int main(){
int num[52] = {0};
int i;
for (i = 0;i < 52;i++)
num[i] = i + 1;

srand(time(0));
for (i = 0;i < 52;i++) {
int random = rand() % 52;
int temp = num[random];
num[random] = num[i];
num[i] = temp;
}

for (i = 0;i < 52;i++) {
if (i % 13 == 0)
sort(&num[i]);

if (num[i] <= 13) printf("%c", 'h');
else if (num[i] <= 13 * 2)
printf("%c", 's');
else if (num[i] <= 13 * 3)
printf("%c", 'd');
else
printf("%c", 'c');

show(num[i] % 13); printf(" ");
if ((i + 1) % 13 == 0)
printf("\n");
}

printf("\n"); return 0;
}
百度网友a844626
2012-12-03
知道答主
回答量:49
采纳率:0%
帮助的人:13.6万
展开全部
只熟悉java,对c不太深入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
纪妖Official
2012-12-04
知道答主
回答量:3
采纳率:0%
帮助的人:4312
展开全部
尼玛,同北师的,求
追问
真蛋疼,我都填了转专业了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式