| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 323 人关注过本帖
标题:这个程序老是出错,谁能帮我改一下啊? 谢谢谢谢谢谢谢!
只看楼主 加入收藏
编程小将
Rank: 1
来 自:萧县
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-12-8
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:2 
这个程序老是出错,谁能帮我改一下啊? 谢谢谢谢谢谢谢!
这个程序老是出错,谁能帮我改一下啊?  谢谢谢谢谢谢谢!


#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include<windows.h>
#include<string.h>

#define MAX 6
void read();

typedef struct player
{
char Name[20]; /*玩家姓名 */
int Score; /*玩家成绩,猜测次数 */
} PLAYER;

int qushu()          /*取数函数*/
{
 int a=0; int b=0;
 int i=0;

 srand( (unsigned)time( NULL ) );   /*随机数种子设置 */
 a=rand();
 while (a<999||a>10000)
     a=rand();
 return(a);
}

void  guess()
{   
    void addrec(int a);
    int s[5],dns;  /*存放电脑随机产生的数*/
    int t[5],sc;  /*存放玩家输入的数*/
    int i,j;
    int a,b;              /* a位置和数值都正确的个数 b数值正确位置不正确的个数 */
    int c=0;
    char xz;
    system("cls");
    dns=qushu();
    printf("电脑数:%d\n",dns);
    s[1]=dns/1000;
    s[2]=dns/100%10;
    s[3]=dns/10%10;
    s[4]=dns%10;

    /* 输入一个随机的四位数 */
    /* 猜这个四位数 */
     //printf("\n从0~9中选择4个不重复的数:\n ");
printf("(你只有10次猜的机会)\n");
while (c<10&&a<4)
{
    a=0;b=0;
    printf("请玩家输入是一个四位数:\n");
    scanf("%d",&sc);
    while(sc<1000||sc>9999)
    {
        printf("请玩家输入是一个四位数:\n");
        scanf("%d",&sc);
    }
    c++;
    t[1]=sc/1000;
    t[2]=sc/100%10;
    t[3]=sc/10%10;
    t[4]=sc%10;
    for (i=1;i<=4;i++)    /* 比较数组s[]和t[] */
    {
        for (j=1;j<=4;j++)
        {
            if (s[i]==t[j])
                if (i==j)
                    a++;
                else
                    b++;
        }
    }


    printf("位置和数值正确:%d,数值正确位置错误:%d,已猜%d次.\n",a,b,c);
    if (a==4)
    {
        getchar();
        printf("确认要保存记录请按'y',任意键返回...!\n");
        scanf("%c",&xz);
        if (xz=='y'||xz=='Y') addrec(c);
    }
}

}
void addrec(int c)              //判断并且增加记录
{
    FILE *fp;
    char name[10];
    PLAYER pl[7];
    int i,n=1;
    printf("请输入玩家姓:");
    scanf("%s",name);
    strcpy(pl[1].Name,name);
    pl[1].Score=c;
    fp=fopen("E:\\record.txt","r");
    while (!feof(fp))
    {
        n++;
        fscanf(fp,"%s %d",pl[n].Name,&pl[n].Score);
    }
    fclose(fp);




void read()                       //读取记录文件
{
 FILE *fp;
   fp=fopen("E:\\record.txt","rb");
 if(fp==NULL)
 {
  printf("读取失败");
                     //初始化
 }
  else (fread(&pl[i].Name,sizeof(player),MAX,fp))
  { fclose(fp);
      printf("%S\n",PLAYER);
 
  
  }

}

                        
    //写入文件
    fp=fopen("E:\\record.txt","w");
    if (n>5) n=5;
    for (i=1;i<n;i++)
        fprintf(fp,"%s %d\n",pl[i].Name,pl[i].Score);

    fclose(fp);

}


void main()
{   
    int xh;
    while(1)
    {
        system("cls");
        printf("1 猜数\n");
        printf("2 排行榜\n");
        printf("0 退出\n");
        printf("请输入序号:");
        scanf("%d",&xh);
        switch(xh)
        {
        case 1:guess();break;
        case 2:read();break;
        case 0:exit(0);break;
        }
    }  
}
搜索更多相关主题的帖子: 姓名 
2010-12-25 23:40
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include<windows.h>
#include<string.h>

#define MAX 6
void read();

typedef struct player
{
char Name[20]; /*玩家姓名 */
int Score; /*玩家成绩,猜测次数 */
} PLAYER;

int qushu()          /*取数函数*/
{
int a=0; int b=0;
int i=0;

srand( (unsigned)time( NULL ) );   /*随机数种子设置 */
a=rand();
while (a<999||a>10000)  //按你的意思这里有问题。如果你的意思是999<=a<=10000,那么就这样写吧:a=rand()%2+999,你那样做了等于没有做
     a=rand();
return(a);
}

void  guess()
{   
    void addrec(int a);
    int s[5],dns;  /*存放电脑随机产生的数*/
    int t[5],sc;  /*存放玩家输入的数*/
    int i,j;
    int a,b;              /* a位置和数值都正确的个数 b数值正确位置不正确的个数 */
    int c=0;
    char xz;
    system("cls");
    dns=qushu();
    printf("电脑数:%d\n",dns);
    s[1]=dns/1000;
    s[2]=dns/100%10;
    s[3]=dns/10%10;
    s[4]=dns%10;

    /* 输入一个随机的四位数 */
    /* 猜这个四位数 */
     //printf("\n从0~9中选择4个不重复的数:\n ");
printf("(你只有10次猜的机会)\n");
while (c<10&&a<4)
{
    a=0;b=0;
    printf("请玩家输入是一个四位数:\n");
    scanf("%d",&sc);
    while(sc<1000||sc>9999)
    {
        printf("请玩家输入是一个四位数:\n");
        scanf("%d",&sc);
    }
    c++;
    t[1]=sc/1000;
    t[2]=sc/100%10;
    t[3]=sc/10%10;
    t[4]=sc%10;
    for (i=1;i<=4;i++)    /* 比较数组s[]和t[] */
    {
        for (j=1;j<=4;j++)
        {
            if (s[i]==t[j])
                if (i==j)
                    a++;
                else
                    b++;
        }
    }


    printf("位置和数值正确:%d,数值正确位置错误:%d,已猜%d次.\n",a,b,c);
    if (a==4)
    {
        getchar();
        printf("确认要保存记录请按'y',任意键返回...!\n");
        scanf("%c",&xz);
        if (xz=='y'||xz=='Y') addrec(c);
    }
}

}
void addrec(int c)              //判断并且增加记录
{
    FILE *fp;
    char name[10];
    PLAYER pl[7];
    int i,n=1;
    printf("请输入玩家姓:");
    scanf("%s",name);
    strcpy(pl[1].Name,name);
    pl[1].Score=c;
    fp=fopen("E:\\record.txt","r");
    while (!feof(fp))
    {
        n++;
        fscanf(fp,"%s %d",pl[n].Name,&pl[n].Score);
    }
    fclose(fp);




void read()                       //读取记录文件
{
FILE *fp;
   fp=fopen("E:\\record.txt","rb");
if(fp==NULL)
{
  printf("读取失败");
                     //初始化
}
  else (fread(&pl[i].Name,sizeof(player),MAX,fp))
  { fclose(fp);
      printf("%s\n",PLAYER);  //不要大写

  
  }

}

                        
    //写入文件
    fp=fopen("E:\\record.txt","w");
    if (n>5) n=5;
    for (i=1;i<n;i++)
        fprintf(fp,"%s %d\n",pl[i].Name,pl[i].Score);

    fclose(fp);

}


void main()
{   
    int xh;
    while(1)
    {
        system("cls");
        printf("1 猜数\n");
        printf("2 排行榜\n");
        printf("0 退出\n");
        printf("请输入序号:");
        scanf("%d",&xh);
        switch(xh)
        {
        case 1:guess();break;
        case 2:read();break;
        case 0:exit(0);break;
        }
    }  
}

[ 本帖最后由 qq1023569223 于 2010-12-26 09:25 编辑 ]

   唯实惟新 至诚致志
2010-12-26 09:16
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:10 
顶一下

Go Go Go
2010-12-26 09:36
快速回复:这个程序老是出错,谁能帮我改一下啊? 谢谢谢谢谢谢谢!
数据加载中...
 
   



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

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