| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:为什么用C输入三个数据就出错?在线求教
只看楼主 加入收藏
雪大临济
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-8-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
为什么用C输入三个数据就出错?在线求教
/*学生基本情况录入*/
struct student * record()
{
        FILE * fp;
        struct tm * ptm;
        long ts;
        int y;
        int ar;
        struct student *p8,/*p10,*/*p7,*p11;
        p8=p7=(struct student *)malloc(sizeof(struct student));
        (*p7).next=NULL;
        (*p8).next=NULL;
    /*    p10=*/p11=p8;
        if((fp=fopen("stu_list","wb"))==NULL)
            {
                printf("文件打开失败\n");
            }
       // printf("请输入学生的学号:\n");
        //fflush(stdin);
        //scanf("%s",p8->num);printf("%s",p8->num);
        printf("1继续0放弃");scanf("%d",&ar);
        while(ar)
        {
            
             p8->sex=0;
             printf("请输入学生的学号:\n");
             fflush(stdin);
             scanf("%s",p8->num);printf("%s",p8->num);
             printf("请输入学生的姓:\n");
             scanf("%s",p8->lname);
             printf("请输入学生的名:\n");
             scanf("%s",p8->fname);
             do
             {
               printf("请输入学生的性别:\n");
               scanf("%d",&p8->sex);
             }
             while(p8->sex!=1&&p8->sex!=0);
             do
             {
                printf("请输入学生的出生年份:\n");
               scanf("%d",&p8->byear);
               ts=time(NULL);
               ptm=localtime(&ts);
               y=ptm->tm_year+1900;         
             }
             while(p8->byear>y);
             printf("请输入学生的出生月份:\n");
             scanf("%d",&p8->bmonth);
             printf("请输入学生的日期:\n");
             scanf("%d",&p8->bday);
             printf("请输入学生的外语成绩:\n");
             scanf("%f",&p8->score[0] );
             printf("请输入学生的高数成绩:\n");
             scanf("%f",&p8->score[1] );
             printf("请输入学生的C语言成绩:\n");
             scanf("%f",&p8->score[2] );
             printf("请输入学生的马哲成绩:\n");
             scanf("%f",&p8->score[3] );
             p8->aver=average(p8);
             p8->sum=addtion(p8);
             if(fwrite(p8,sizeof(struct student),1,fp)!=1)
             {    printf("文件写入出错!\n");}
                   //(*p8).next=NULL;     
                p7=p8->next;
             p8=p7;
             //p10=p8;
             p8=(struct student *)malloc(sizeof(struct student));//(*p8).next=NULL;
             // printf("你确定继续要插入学生基本情况吗?1确定0放弃\n");
             //fflush(stdin);
             //scanf("%c",&ar);
            
             //printf("请输入学生的学号:\n");
             //fflush(stdin);
             //scanf("%s",p8->num);printf("%s",p8->num);
             printf("1继续0放弃");scanf("%d",&ar);
        
        }
        fclose(fp);
        free(p7);
        p8=NULL;
        fp=fopen("stu_list","rb");
         while(flag)
         {
        fread(p11,sizeof(struct student),1,fp);
        printf("学号  姓名  性别   出生年月日     外语          高数        C语言       马哲\n");
           printf("%s      %s%s      %d      %d-%d-%d     %f     %f    %f    %f\n",(*p11).num,(*p11).lname,(*p11).fname,(*p11).sex,(*p11).byear,(*p11).bmonth,(*p11).bday,(*p11).score[0],(*p11).score[1],(*p11).score[2],(*p11).score[3]);
        p11=(*p11).next;
        if(p11==NULL)flag=0;
         }
        fclose(fp);
        flag=1;
   
   
    /*    if((fp=fopen("stu_list","wb"))==NULL)
            {
                printf("文件打开失败\n");
            }
         while(p10!=NULL)
        {
            if(fwrite(p10,sizeof(struct student),1,fp)!=1)
            {    printf("文件写入出错!\n");}
               /* (*p8).next=NULL;
                 p10=p10->next;
        }
        fclose(fp);*/
        return(p11);
}
搜索更多相关主题的帖子: record 在线 
2013-08-22 14:04
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:5 
起码你要指出哪错了,错哪了,或者是你的目的是什么吧???????



再不济你把调试结果粘上也行啊。。。。。。。。。。。。。。。

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-22 15:30
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
收藏
得分:5 
程序局部定义不配套.

武功再高也怕菜刀.
2013-08-22 15:33
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:5 
太乱了  太纠结了

这个怎么玩
2013-08-23 09:12
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
收藏
得分:5 
你对指针的使用完全不着调,再把指针那章内容仔细的理解一遍!
2013-08-23 13:33
快速回复:为什么用C输入三个数据就出错?在线求教
数据加载中...
 
   



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

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