C语言编程问题请问

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

要求:
1)在《算法描述》中填写实现算法。
2)在源代码中编写必要的注释。
思考:
你的发牌算法是最优化的吗?

曾经也遇到过同样的题目,当时没设计好,今天终于完成了这个工作。对程序有任何疑问请加QQ:770305791
我的算法与其他的算法不一样,如果你能细细分析就可以发现,代码如下:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void insert_sort(int b[52])
{
int n[52] = {0}, i, j;
for(i = 0; i < 52; i++)
{
for(j = 0; j <= b[i]; j ++)
{
if(n[j] == 1)
b[i] ++;
}
n[b[i]] = 1;
}
}
int main()
{
char s[4];
int d,i,j;
int b[52]={0};
srand(time(NULL));
for(i = 52; i > 0; i --) //这种方式避免了一直产生随机数
{
d = rand() % i;
b[52 - i] = d;
}
insert_sort(b); //调用了插序函数
printf("\n");
for(i = 0; i < 52; i ++)
printf("%4d", b[i]); //b[i]里面存储的是随机的牌
printf("\n");
//只需要用代码发给四个人显示出来就OK
/*给个示例
printf("player1: ");
for(i = 0; i < 52; i += 4)
{
if(b[i] / 13 == 0)
if(b[i] % 13 == 0)
sprintf(s, "hA");
else if(b[i] % 13 == 10)
sprintf(s, "hJ");
else if(b[i] % 13 == 11)
sprintf(s, "hQ");
else if(b[i] % 13 == 12)
sprintf(s, "hK");
else
sprintf(s, "h%d", b[i] % 13 + 1);
else if(b[i] / 13 == 1)
if(b[i] % 13 == 0)
sprintf(s, "sA");
else if(b[i] % 13 == 10)
sprintf(s, "sJ");
else if(b[i] % 13 == 11)
sprintf(s, "sQ");
else if(b[i] % 13 == 12)
sprintf(s, "sK");
else
sprintf(s, "s%d", b[i] % 13 + 1);
else if(b[i] / 13 == 2)
if(b[i] % 13 == 0)
sprintf(s, "dA");
else if(b[i] % 13 == 10)
sprintf(s, "dJ");
else if(b[i] % 13 == 11)
sprintf(s, "dQ");
else if(b[i] % 13 == 12)
sprintf(s, "dK");
else
sprintf(s, "d%d", b[i] % 13 + 1);
else if(b[i] / 13 == 3)
if(b[i] % 13 == 0)
sprintf(s, "cA");
else if(b[i] % 13 == 10)
sprintf(s, "cJ");
else if(b[i] % 13 == 11)
sprintf(s, "cQ");
else if(b[i] % 13 == 12)
sprintf(s, "cK");
else
sprintf(s, "c%d", b[i] % 13 + 1);
printf("%-4s", s);
}
*/
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-18
您可能的,貌似为什么clrscr()函数不使用编译器错误,不你吗?哦,
在事实上,有两个问题:
---------------
1 Clrscr()函数在头文件CONIO.H的原型是无效的clrscr(无效)。
所以,[如果你有],??然后的基础上,你原来的程序加一个#include
但不幸的是,编译器仍然是一个错误,甚至发出了“ “clrscr'未定义,假设外部返回int”的错误,是不是?

所以,你需要知道约2:00
2,VC平台,显然不能使用TC平台控制台声明conio的在
(想更具体,请参阅免费的C标准,他是非常有帮助的)
---------------------------------- ----
废话结束,我可以帮你:
#包括
#包括
诠释的main() /> {
字符CH;
printf的(“输入通道”);
CH = getchar函数();
系统(“CLS”); / /你的Clrscr()功能类似的头文件stdlib.h中
printf的(“%C%C \ n”,CH,CH);
printf(“请%C%C \ n”,CH,CH); BR /> printf的(“%C%C \ n”,CH,CH);
printf的(“%C \ N”,CH,CH);
printf的(“%C%C \ n “,CH,CH);
printf的(”%C%C \ n“,CH,CH);
printf的(”%C%C \ n“,CH,CH);
> 0;
}
第2个回答  2012-12-05
电子工业出版社的c++基础教程上有源代码
第3个回答  2012-12-05
不知道要问什么?让大家看算法是不是最优化的,你把算法贴出来让大家看看。
第4个回答  2012-12-05
路过
相似回答