| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 443 人关注过本帖
标题:我是编程新人,请高手帮忙弄个排行榜,纠结了一天了
取消只看楼主 加入收藏
hl147403
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
我是编程新人,请高手帮忙弄个排行榜,纠结了一天了
   若游戏胜出且成绩在前五名,可输入并记录对应的用户姓名,并添加到积分榜中。操作菜单中相应选项改为“2:积分榜!”,用于把积分榜中保存的前五名用户姓名、猜数个数、尝试次数、成绩显示出来。
  能对积分榜的成绩进行排序和输出。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
struct Billboard
{char d[100];
int t;
int y;
int u;
}board[5],board1,board2;

int main()

{
int j=0,k=0,l=0,z=0;
int p=0,o=0,q=0,w=0,e=0;
int g=4,h=10,n=0;
int r=h;
int i=0,a[100],b[100];
char c[100];
FILE *fp;

do
{    printf("**********猜数字游戏**********\n");
printf("1:开始游戏\n");
printf("2:查看上次成绩\n");
printf("3:帮助信息\n");
printf("4:系统设置\n");
printf("0:退出程序\n");
printf("******************************\n");
printf("请输入一个序号:");
    scanf("%d",&i);
do
{if(i<0||i>4){printf("错误,请再次输入一个序号:");
scanf("%d",&i);}
switch(i)
{case 0:return 0;break;

case 1:
    srand(time(0));
    for(j=0;j<g;j++)                      //生成数
       {     
     a[j]=rand()%10;        
        for(k=0;k<=j-1;k++)
        {if(a[j]==a[k])
        {a[j]=rand()%10;
        k=-1;}}}
for(j=0;j<g;j++)
printf("%d ",a[j]);
    printf("请输入%d个一位数,用空格隔开:",g);    //输入
do
{   
do
{
        do
    {p=0;
        for(j=0;j<g;j++)              
    scanf("%d",&b[j]);
for(j=0;j<g;j++)
        {if(b[j]>=0&&b[j]<=9)p++;
        }
    if(p!=g)
    {printf("错误输入两位数,请重新输入%d个一位数,用空格隔开:",g);
    p=0;}
    }while(p!=g);
    o=0;
    n=0;
    for(l=0;l<g;l++)
        n=n+l;
    for(j=0;j<g;j++)
    {for(k=0;k<=j-1;k++)
    {    if(b[j]!=b[k])o++;}}
    if(j==g)
    {if(o!=n){printf("错误输入重复数,请重新输入%d个一位数,用空格隔开:",g);}}
}while(o!=n);
   n=0;
    q=0;
    w=0;         
   
        for(j=0;j<g;j++)
    { for(k=0;k<g;k++)
   
    if(a[j]==b[k])
    {if(j==k)q++;   
        else w++;}}
        if(q==g){r=r*10;
printf("你获得了%d分\n",r);
printf("请输入你的姓名:");
scanf("%s",c);
break;}
        r--;
        if(r==0){printf("很遗憾你没答对,游戏结束\n");break;}
        else       {printf("有%d个数数值和位置都相同!有%d个数数值相同,但位置不同。你还有%d次机会\n",q,w,r);
        printf("请再次输入%d个一位数,用空格隔开:",g);}
   
}while(q!=g||r==1);

    break;
case 2:
    if((fp=fopen("d:\\s.txt","r"))==NULL)
{printf("error");exit(0);}

for(j=0;j<5;j++)
{
    fscanf(fp,"%s   %d   %d   %d\n",board[i].d,&board[i].t,&board[i].y,&board[i].u);
printf("%-10s %4d %4d %4d\n",board[j].d,board[j].t,board[j].y,board[j].u);}
fclose(fp);
    break;
case 3:printf("游戏规则:1、系统默认随机生成4个各不相同个位数,由玩家自己输入4个个位数,通过逻辑思         维猜出数字\n");
       printf("          2、系统默认尝试次数为10次,用越少次数猜对分数越高,分数高者进入排行榜。\n");
       printf("          3、若想修改猜的个数和尝试次数,请进入4:系统设置中进行设置\n");break;
case 4:
    printf("修改要猜的数字的个数:");
        scanf("%d",&g);
    printf("\n修改可以尝试的次数:");
    scanf("%d",&h);break;}
}while(i<0||i>4);

printf("按0返回主界面\n");
scanf("%d",&e);
while(e!=0)
{printf("错误,按0返回主界面\n");
scanf("%d",&e);}

system("cls");}while(e==0);


system("PAUSE");
return 0;}


搜索更多相关主题的帖子: 排行榜 积分榜 游戏 姓名 用户 
2011-06-06 12:50
hl147403
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-6
收藏
得分:0 
回复 2楼 lock69
感谢,我是新人,不怎么会这方面的
2011-06-06 14:55
快速回复:我是编程新人,请高手帮忙弄个排行榜,纠结了一天了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015870 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved