#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int j,k,n,a,b,t,c[1000],d[1000];
a=b=0;
t=time(0)%1000;
srand(t);
printf("序列中2n个整数,请确定n:");
scanf("%d",&n);
for(j=1;j<=2*n;j++)
{
c[j]=rand()%(2*n)+2;
d[j]=c[j];
}
printf("序列的%d个整数以产生,每次只显示两端整数。\n",2*n);
printf("A先取,A,B轮流取,直至取完。\n");
for(k=1;k<=2*n;k++)
{
if(k<2*n)
printf("\n 两端数为:%2d,%2d",d[k],d[2*n]);
else
printf("\n 只剩下一个数:%2d",d[2*n]);
if(k%2==1)
{
t=d[k];
if(t<d[2*n])
{
t=d[2*n];
for(j=2*n;j>=k+1;j--)
d[j]=d[j-1];
}
a=b+t;
printf(" A取数:%2d",t);
}
else
{
printf(" B取数:");
scanf("%d",&t);
if(t==d[k]||t==d[2*n])
{
b=b+t;
if(t==d[2*n])
{
for(j=2*n;j>=k+1;j--)
d[j]=d[j-1];
}
}
else
{
printf(" A取数有错误,重新开始!");
return;
}
}
}
printf(" 原序列的%d个整数为:",2*n);
for(j=1;j<=2*n;j++)
printf(" %d",c[j]);
printf("\n 最后得分为A=%d,B=%d",a,b);
if(a>b)
printf("\n 此游戏A胜!\n");
else if(a<b)
printf("\n 此游戏B胜!\n");
else
printf("\n 此游戏A,B平手!\n");
}
![]()