救命啊!!VC的题目!!(限未来24小时)

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:06:27
虽然现在分少,但已经倾我所有了.有好人的话,我会追加的!!
不要用C++,就用C.

1.设用二维数组deck[52][2]表示一副扑克牌,数组的一行存储一张牌的花色和面值.另引入以下字符指针数组用于存储牌的花色名称:
char*suit[4]={“Spades”,”Hearts”,”Diamonds”,”Clubs”}; 以下字符指针数组用于存储牌的面值:char*face[13]={“Ace”,”Deuce”,”Three”,”Four”,”Five”,”Six”,”Seven”,”Eight”,”Nine”,”Ten”,”Jack”,”Queen”,”King”}; 试按以下要求编写洗牌模拟函数.令52张牌按顺序与整数0至51对应.首先顺序地将花色和面值填入数组deck中,然后逐一考察这52张牌,并为每张牌随机产生一个0至51范围内的一个整数,并将当前正在考察的牌与随机产生的整数对应的牌交换.直至每张牌都被考察后,洗牌结束.

2.利用洗牌函数的结果,编写牌的输出函数,依次输出洗牌函数产生的第1张至第52张牌的花色和面值.

3.编写对给定的5张牌,求满足以下要求的函数:
(1) 这手牌是否有一个对子
(2) 这手牌是否有两个对子
(3) 这手牌是否有三张面值相同的牌
(4) 这手牌是否是一个顺子,即5张牌的面值连续
(5) 这手牌是否是同一种花色
(6) 这手牌是否有三张面值相同的牌,并且另外两张牌的面值也相同

4.编写函数,对给定两手5张牌确定哪一手的牌更好

5.设用有N个元素的整型数组表示一个[1,N]上的整数集合,试设计一组函数用于模拟以下集合运算:
empty(s) 置集合s为空集
isEmpty(s) 测试集合s是否为空集
add(s,i) 将整数i添加到集合s
in(s,i) 测试正整数i是否是集合s的元素
unionset(s1, s2, s3) 求集合s1和s2的和集合s3
comp(s1,s2) 求集合s1的补集合s2
sub(s1, s2, s3) 求集合s1和s2的差集合s3

#include <stdio.h>

/*交换两个数*/
void Swap(int &a, int &b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}
/*输出一行十个数字*/
void Write(int array[], int begin, int end)
{
for(int i = begin; i <= end; i ++)
// cout <<array[i] << " ";
printf("%d ",array[i]);
printf("\n");
// cout << endl;
}
/*插入排序*/
void InsertionSort(int array[], int begin, int end)
{
int i, j;
int tmp;
for(i = begin+1; i <= end; i ++) /*循环几次就输出几行*/
{
tmp = array[i];
for(j = i-1; j >= begin; j --)
{
if(tmp > array[j]) /*如果要从小到大排序,则改将'>'改为'<'*/
array[j + 1] = array[j];
else
break;
}
array[j+1] = tmp;
Write(array, begin, end); /*输出排序结果(一行)*/
}
}
/*选择排序*/
void SelectionSort(int array