我把你的代码改了一下,我已经运行过了,你看看
#include
#include
#include
int play(int suiji);
void paihangbang(struct p a[100],int r);
struct p
{
char name[20];
int cishu;
}chengji[100];
void main()
{
int i,suiji, xuanze;
i=0;
/*i=猜测了多少次,suiji=产生的随机数字,xuanze=游戏者选择开始游戏还是结束游戏*/
printf("**************猜数字游戏***************\n");
printf("* 1.start *\n");
printf("* 0.exit *\n");
do
{
//记录玩家人次
i++;
srand((unsigned)time(NULL));
suiji=rand()%10;
//在此函数中进行判断,并返回记录次数
chengji[i].cishu=play(suiji);
printf("\n恭喜您,请输入您的名字:"); //记录玩家姓名
fflush(stdin);
gets(chengji[i].name);
printf("---------------------------------------\n");
printf("\n请作出您的选择(1:继续.0:结束): ");
scanf("%d", &xuanze);
}while(xuanze!=0);
paihangbang(chengji,i);
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");
}
int play(int suiji)
{
int i=0,c=0, caice;
/*caice=游戏者猜测的数字*/
for(i=0; i<=50; i++)
{
printf("\n请输入您猜测的数字:\n ");
scanf("%d", &caice);
c++;
if(caice>suiji)
printf("您所猜测的数字过大\n");
else if(caice
printf("您所猜测的数字过小\n");
else if(caice==suiji)
{printf("您所猜测的数字正确\n");
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>a[j+1].cishu)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}