#include
<
iostream
>
#include < iomanip >
#include < ctime >
using namespace std;
inline int random( int count) // 定义随机函数,取1——RAND_MAX中的一个随机值
{
return 1 + count * rand() / (RAND_MAX + 1 );
}
void main()
{
int Array[ 54 ]; // 用Array存储随机抽出的值,1——54
srand((unsigned)time(NULL)); // 让每次随机抽出的值不一定相同
for ( int i = 0 ;i < 54 ;i ++ )
{
int a = random( 54 ); // 随机取出一个1——54之间的数
for ( int j = 0 ;j < i;j ++ ) // 判断是否以前取出过
{
if (a == Array[j])
{
j = i + 13 ;
}
}
if (j > i + 6 ) // 如果取出过则i--,进入下次循环
{
i -- ;
continue ;
}
else // 如果没取出过,则存入Array[]中
{
Array[i] = a;
}
}
for ( int i = 0 ;i < 54 ;i ++ ) // 打印Array[]中的值
{
cout << setiosflags(ios::left) << setw( 4 ) << Array[i];
}
cout << endl;
int person1[ 2 ][ 13 ]; // 定义person1[3][13]来存储前面两人所得到的牌,每人13张
int person2[ 2 ][ 14 ]; // 定义person2[2][14]来存储后面两人所得到的牌,每人14张
// 取出随机数组里的前面13张牌给第一个人
for ( int i = 0 ;i < 13 ;i ++ )
{
person1[ 0 ][i] = Array[i];
}
// 取出随机数组里的14——26张牌给第二个人
for ( int i = 0 ;i < 13 ;i ++ )
{
person1[ 1 ][i] = Array[i + 13 ];
}
// 取出随机数组里的27——40张牌给第三个人
for ( int i = 0 ;i < 14 ;i ++ )
{
person2[ 0 ][i] = Array[i + 26 ];
}
// 取出随机数组里的41——54张牌给第三个人
for ( int i = 0 ;i < 14 ;i ++ )
{
person2[ 1 ][i] = Array[i + 40 ];
}
// 打印出第一个人得到的牌
for ( int i = 0 ;i < 13 ;i ++ )
{
cout << setw( 4 ) << person1[ 0 ][i];
}
cout << endl;
// 打印出第二个人得到的牌
for ( int i = 0 ;i < 13 ;i ++ )
{
cout << setw( 4 ) << person1[ 1 ][i];
}
cout << endl;
// 打印出第三个人得到的牌
for ( int i = 0 ;i < 14 ;i ++ )
{
cout << setw( 4 ) << person2[ 0 ][i];
}
cout << endl;
// 打印出第四个人得到的牌
for ( int i = 0 ;i < 14 ;i ++ )
{
cout << setw( 4 ) << person2[ 1 ][i];
}
cout << endl;
}
#include < iomanip >
#include < ctime >
using namespace std;
inline int random( int count) // 定义随机函数,取1——RAND_MAX中的一个随机值
{
return 1 + count * rand() / (RAND_MAX + 1 );
}
void main()
{
int Array[ 54 ]; // 用Array存储随机抽出的值,1——54
srand((unsigned)time(NULL)); // 让每次随机抽出的值不一定相同
for ( int i = 0 ;i < 54 ;i ++ )
{
int a = random( 54 ); // 随机取出一个1——54之间的数
for ( int j = 0 ;j < i;j ++ ) // 判断是否以前取出过
{
if (a == Array[j])
{
j = i + 13 ;
}
}
if (j > i + 6 ) // 如果取出过则i--,进入下次循环
{
i -- ;
continue ;
}
else // 如果没取出过,则存入Array[]中
{
Array[i] = a;
}
}
for ( int i = 0 ;i < 54 ;i ++ ) // 打印Array[]中的值
{
cout << setiosflags(ios::left) << setw( 4 ) << Array[i];
}
cout << endl;
int person1[ 2 ][ 13 ]; // 定义person1[3][13]来存储前面两人所得到的牌,每人13张
int person2[ 2 ][ 14 ]; // 定义person2[2][14]来存储后面两人所得到的牌,每人14张
// 取出随机数组里的前面13张牌给第一个人
for ( int i = 0 ;i < 13 ;i ++ )
{
person1[ 0 ][i] = Array[i];
}
// 取出随机数组里的14——26张牌给第二个人
for ( int i = 0 ;i < 13 ;i ++ )
{
person1[ 1 ][i] = Array[i + 13 ];
}
// 取出随机数组里的27——40张牌给第三个人
for ( int i = 0 ;i < 14 ;i ++ )
{
person2[ 0 ][i] = Array[i + 26 ];
}
// 取出随机数组里的41——54张牌给第三个人
for ( int i = 0 ;i < 14 ;i ++ )
{
person2[ 1 ][i] = Array[i + 40 ];
}
// 打印出第一个人得到的牌
for ( int i = 0 ;i < 13 ;i ++ )
{
cout << setw( 4 ) << person1[ 0 ][i];
}
cout << endl;
// 打印出第二个人得到的牌
for ( int i = 0 ;i < 13 ;i ++ )
{
cout << setw( 4 ) << person1[ 1 ][i];
}
cout << endl;
// 打印出第三个人得到的牌
for ( int i = 0 ;i < 14 ;i ++ )
{
cout << setw( 4 ) << person2[ 0 ][i];
}
cout << endl;
// 打印出第四个人得到的牌
for ( int i = 0 ;i < 14 ;i ++ )
{
cout << setw( 4 ) << person2[ 1 ][i];
}
cout << endl;
}