c++ 帮忙看看我这段代码哪里错了

2025-06-22 16:39:28
推荐回答(1个)
回答1:

//---------------------------------------------------------------------------
#pragma hdrstop

//---------------------------------------------------------------------------
#include
#include
#include

//---------------------------------------------------------------------------
struct p
{
char name[20];
int cishu;
}chengji[100];

//---------------------------------------------------------------------------
int play(int suiji);
void paihangbang(struct p a[100], int r);

int main(int argc, char* argv[])
{
int i,c,suiji, xuanze;
i=0;
/*i=猜测了多少次,suiji=产生的随机数字,xuanze=游戏者选择开始游戏还是结束游戏*/
printf("**************猜数字游戏***************\n");
printf("* 1.start *\n");
printf("* 0.exit *\n");
printf("***************************************\n");
do
{
i++; //记录玩家人次
srand((unsigned)time(NULL));
suiji=rand()%10;
c=play(suiji);
printf("\n恭喜您,请输入您的名字:"); //记录玩家姓名
fflush(stdin);
gets(chengji[i].name);
chengji[i].cishu=c; //记录次数
printf("\n请作出您的选择(1:继续.0:结束): ");
scanf("%d", &xuanze);
}while(xuanze!=0);
paihangbang(chengji,i-1);
printf("\n\n**************** 英 雄 榜 *****************");
printf("\n\tLv\tplayer\tScore");
for(i=1;i<=10;i++)
printf("\n\t%d\t%s\t%d",i,chengji[i].name,chengji[i].cishu);
printf("\n");

getchar();

return 0;
}

int play(int suiji)
{
int i=0,c=0, caice;
/*caice=游戏者猜测的数字*/
for(i=0; i<=50; i++)
{
printf("请输入您猜测的数字:\n ");
scanf("%d", &caice);
c++;
if(caice>suiji)
printf("您所猜测的数字过大\n");
else if(caiceprintf("您所猜测的数字过小\n");
else if(caice==suiji)
{
printf("您所猜测的数字正确\n");
//if(caice==suiji) 这句话重复了,可以不用要,加个括号就行了
break;
}
}
return c; //返回猜测的次数
}

void paihangbang(struct p a[100],int r)
{
int i,j;
struct p t;
for(i=0;i{
for(j=0;j{
if(a[j].cishu{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}