第二,一场比赛应采用三局两胜制或五局三胜制,在单打中,首先由发球员合法发球,再由接发球员合法还击,然后两者交替合法还击,也就是说抽签先发球的人应先发两次球,然后再由对方发两球,之后再交替发球。
第三,当比分达到10:10时采用一球换发制,直至拉开两分得差距决出胜负。
第四,比赛过程中,乒乓球连续触网两次(触网之后没有落到乒乓球桌面上,而再次触网),为死球,对方得一分;第五,下一局比赛开始时,双方交换场地与发球权。
以上是一局比赛的程序,一般来说一场比赛是7局4胜的,其它局数同上述所说。
#include<iostream>#include <deque>
#include <vector>
#include <stdlib.h>
using namespace std
#define TeamCount 4
#define NumberCount 8
void RandGroup(deque<int>& deqSrc, vector<vector<int>>& rVecDec)
{
srand(time(NULL))
int nSrcSize = deqSrc.size()
vector<int> vecSample
for (int i = 0 i < nSrcSize i++)
{
// 取队员
int nPlayer = deqSrc.front()
deqSrc.pop_front()
vecSample.clear()
// 获取不满NumberCount的队伍集合
for (int j = 0 j < TeamCount j++)
{
if (rVecDec[j].size() < NumberCount)
vecSample.push_back(j)
}
// 获取该队员的随机队列编号
int nTmp = rand()
nTmp = rand() % (vecSample.size())
rVecDec[vecSample[nTmp]].push_back(nPlayer)
}
}
int main()
{
// 生成32个队员
deque<int> deq
for (int i = 0 i < TeamCount * NumberCount i++)
{
int nPlayer = 0
cin >> nPlayer
deq.push_back(nPlayer)
}
// 随机分组
vector<vector<int>> vecRes
for (int i = 0 i < TeamCount i++)
{
vector<int> vecTmp
vecRes.push_back(vecTmp)
}
RandGroup(deq, vecRes)
return 0
}
朋友,请【采纳答案】,您的采纳是我答题的动力,如果没有明白,请追问。谢谢。
Private Sub Command1_Click()
Dim team(8), teamA(4), teamB(4) As String, i%, j%
team(1) = "中国"
team(2) = "美国"
team(3) = "巴西"
team(4) = "古巴"
team(5) = "俄罗斯"
team(6) = "荷兰"
team(7) = "德国"
team(8) = "西班牙"
For i = 1 To 8
x = Int((9 - i) * Rnd + 1) '剩余随机选择
If i > 4 Then
teamA(i - 4) = team(x)
Else
teamB(i) = team(x)
End If
For j = x To 8
If j < 8 Then team(j) = team(j + 1)
Next
Next
Text1.Text = teamA(1) & Space(2) & teamA(2) & Space(2) & teamA(3) & Space(2) & teamA(4)
Text2.Text = teamB(1) & Space(2) & teamB(2) & Space(2) & teamB(3) & Space(2) & teamB(4)
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)