足球比賽積分排行榜程式題目
1、球隊的數目可以不固定,使用“足球隊-A,足球隊-B,……”對球隊命名;
2、球隊比賽采用單回圈(如果能力允許也可以使用:主客場回圈賽/隨機/主客場隨機等方式)方式進行,勝一場積3分,平一場積1分,輸一場積0分,如果兩個隊積分相同,需依次進行凈勝球、進球數、兩隊勝負關系、客場進球多的比較,直至排出名次。注:單回圈比賽可以使用:常規轉換法、貝格爾編排發等方法編排球隊對位。
3、所有的比分資料要求隨機產生,在隨機生成資料時,為了真實性,可以人為設定球隊的強弱權值。
4、要求生成每一輪比賽的對位關系、比分、每輪結束后的積分榜。
5、所有比賽結束后要生成總的積分榜。
6、所有資料都可以存盤,最好還能復盤
大致題目如上
#include <stdio.h>
#include <stdlib.h>
#include <time. h >
#include<algorithm>#include<string.h>
using namespace std;
int cmp1(int a,int b)
{
return a>b;
}
int main ()
{
char ch; int n;
int m;
int l=0;
int f[100] = {0};
int j[100] = {0};
int d[100] = {0};
float q[100] = {0};
srand(time(NULL)); printf("\n\n\n\n\t\t****&****&****&****&****&****&****&****&****&****");
start: printf("\n\n\n\n\t\t\t Welcome to the football points table\n"); printf("\n\n\n\n\t\t******************Press any key to continue********************");
printf("\n");
printf("Please input the number of the team(three-ten):"); scanf("%d",&n);
for (int i=1;i<=n;i++)
{
q[i] = rand()%150;
q[i] /= 100;
q[i] += 0.5;
}
if (n%2==0)
{
m = n;
}
else
{
m = n+1;
l=m;
}
int a=1,b=1,index=1,loop=0;
for (int i=1;i<=(m-1)*(m/2);i++)
{
if (a>=m)
{
a = 1;
}
if (index>(m/2))
{
index = 1;
}
if (index == 1)
{
loop++;
if(i==1)
{
b=m;
}
else
{
b=a;
}
int na[100] = {0};
int xs[100] = {0};
for (int v=1;v<=n;v++)
{
na[v] = f[v];
}
sort(na,na+n+1,cmp1); printf("------------------------------------------------------------------------------\n");
printf("\t\t\t\t This round scoreboard\n"); printf("------------------------------------------------------------------------------\n"); printf("\nranking\tteam\tT and W\tIntergral\tgoal\tlose\tGD\n"); printf("------------------------------------------------------------------------------\n");
for(int p=0;p<=n;p++)
{
for(int m=1;m<=n;m++)
{
if(f[m]==na[p] && xs[m]==0)
{
xs[m] = 1;
printf("%d\tteam_%2c\t%.2f\t%d\t\t%d\t%d\t%d\n",p+1,m+64,q[m],f[m],j[m],d[m],j[m]-d[m]);
break;
}
}
} printf("--------------------------------------------\n"); printf("Round %d \n",loop);
if((i-1)/(m/2)%2==0)
{
if(a == l)
{
printf("Bye vs team_%2c\n",m+64);
}
else if (m == l)
{
printf("team_%2c vs Bye\n",a+64);
}else
{
printf("team_%2c vs team_%2c\t",a+64,m+64);
int aj = rand()%4*q[a];
int mj = rand()%4*q[m];
j[a]+=aj;
d[a]+=mj;
j[m]+=mj;
d[m]+=aj;
printf("|| %2d : %2d\t",aj,mj);
if(aj==mj)
{
printf("draw");
f[a]+=1;
f[m]+=1;
}
else if(aj>mj)
{
printf("team_%2cWin",a+64);
f[a]+=3;
} else
{
printf("team_%2cWin",m+64);
f[m]+=3;
}
}
} else
{
if(a == l)
{
printf("team_%2c vs Bye\n",m+64);
}
else if (m == l)
{
printf("Bye vs team_%2c\n",a+64);
} else
{
printf("team_%2c vs team_%2c\t",m+64,a+64);
int mj = rand()%4*q[m];
int aj = rand()%4*q[a];
j[a]+=aj;
d[a]+=mj;
j[m]+=mj;
d[m]+=aj;
printf("|| %2d : %2d\t",mj,aj);
if(aj==mj)
{
printf("draw\n");
f[a]+=1;
f[m]+=1;
} else if(aj>mj)
{
printf("team_%dWin\n",a);
f[a]+=3;
} else
{
printf("team_%dWin\n",m);
f[m]+=3;
}
}
}
}
else if(index>1 && index<=m/2)
{
if(b>1)
{
b--;
}else
{
b=m-1;
}
if(a == l)
{
printf("Bye vs team_%2c\n",b+64);
}
else if(b == l)
{
printf("team_%2c vs Bye\n",a+64);
} else
{
printf("team_%2c vs team_%2c\t",a+64,b+64);
int aj = rand()%4*q[a];
int bj = rand()%4*q[b];
j[a]+=aj;
d[a]+=bj;
j[b]+=bj;
d[b]+=aj;
printf("|| %2d : %2d\t",aj,bj);
if(aj==bj)
{
printf("draw\n");
f[a]+=1;
f[b]+=1;
}
else if(aj>bj)//
{
printf("team_%2cWin\n",a+64);
f[a]+=3;
}else
{
printf("team_%2cWin\n",b+64);
f[b]+=3;
}
}
}
index++;
a++;
}
int na[100] = {0};
for (int i=1;i<=n;i++)
{
na[i] = f[i];
}
int xs[100] = {0};
sort(na,na+n+1,cmp1);//進行排名 printf("--------------------------------------------------------------------------\n");
printf("\t\t\t\t This round scoreboard\n"); printf("---------------------------------------------------------------------------\n");
printf("\nranking\tteam\tT and W\tIntergral\tgoal\tlose\tGD\n"); printf("---------------------------------------------------------------------------\n");
for(int p=0;p<=n;p++)
{
for(int m=1;m<=n;m++)
{
if(f[m]==na[p] && xs[m]==0)
{
xs[m] = 1;
printf("%d\tteam_%2c\t%.2f\t%d\t\t%d\t%d\t%d\n",p+1,m+64,q[m],f[m],j[m],d[m],j[m]-d[m]);
break;//名次,隊名,權重,積分,進球數,失球數,凈勝球
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/87336.html
標籤:C語言
