CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

这到底是为什么啊(重分求解)

楼主bnbn3(对着天小声说一声:他奶奶的)2004-05-02 09:05:38 在 C/C++ / C语言 提问

我的代码如下:  
  #include<stdio.h>  
  #include<stdlib.h>  
  #include<conio.h>  
  #include<string.h>  
  void   input(void);  
  struct   student  
  {char   name[20];  
  int   num;  
  int   chinese;  
  int   maths;  
  int   zhongfen;  
  int   paiming;  
  };  
  struct   student   *p,*q;  
  int   a;  
  void   main()  
  {  
  int   b;  
  printf("please   input:1:please   input   shuju.2:review   the   paiming.3:find   the   paiming.4:exit.");  
  scanf("%d",&b);  
  switch(b)  
  {case   1:input();break;  
    case   2:   break;  
    case   3:exit(0);break;  
    }  
    }  
    void   input(void)  
    {void   charupaixu(void);  
    int   m;  
    char   n[20];  
    printf("please   input   name:                 \n"   );  
    printf("please   input   number:         \n");  
    printf("please   input   chinese:       \n");  
    printf("please   input   maths:       \n");  
    m=wherey();  
    gotoxy(22,m-4);  
    do  
    {p=(struct   student*)malloc(sizeof(struct   student));  
    a++;  
    scanf("%s",p[a].name);  
    if((strcmp(p[a].name,"tuichu"))==0)break;  
    gotoxy(22,m-3);  
    scanf("%d",&p[a].num);  
    gotoxy(22,m-2);  
    scanf("%d",&p[a].chinese);  
    gotoxy(22,m-1);  
    scanf("%d",&p[a].maths);  
    gotoxy(22,m-4);  
    free(p);  
    p[a].zhongfen=p[a].chinese+p[a].maths;  
    charupaixu();}  
    while((strcmp(p[a].name,"tuichu"))!=0);  
    }  
    void   charupaixu(void)  
    {FILE   *fp;  
      int   b=0,d,c,e;  
      char   n[20];  
      fp=fopen("c:\shuju","wb");  
      if(feof(fp))  
      fwrite(&p[a],sizeof(struct   student),1,fp);我检查了一便,前面的都                                                                                                 对,问题   就出在这儿  
      while(!feof(fp))                                                     fwrite函数写入失败,每次都是  
      {q=(struct   student*)malloc(sizeof(struct   student));这样导至后面的程序出错,  
      b++;                                                                                                 可我看了半天也不知  
      fread(&q[b],sizeof(struct   student),1,fp);                   为什么会写入失败        
      free(q);}  
      for(d=1;d<=b;d++)  
      if(p[a].zhongfen>=q[d].zhongfen&&p[a].zhongfen<=q[d+1].zhongfen)  
      {for(c=b;c>d;c--)  
              {q=(struct   student*)malloc(sizeof(struct   student));  
                strcpy(q[c+1].name,q[c].name);q[c+1].num=q[c].num;q[c+1].chinese=q[c].chinese;  
                q[c+1].maths=q[c].maths;}  
                free(q);break;  
                }  
    for(e=1;e<=b+1;e++)  
    fwrite(&q[e],sizeof(struct   student),1,fp);  
    fclose(fp);  
    } 问题点数:100、回复次数:4Top

1 楼hslinux(幻世龙)回复于 2004-05-02 09:55:54 得分 0

if(feof(fp))//////   wb方式打开的就已经是新文件了,有老的也被删了。  
      fwrite(&p[a],sizeof(struct   student),1,fp);我检查了一便,前面的都                                                                                                 对,问题   就出在这儿  
      while(!feof(fp))                                                     fwrite函数写入失败,每次都是  
      {q=(struct   student*)malloc(sizeof(struct   student));这样导至后面的程序出错,  
      b++;            
  ///////q还没被赋值,还有那里来的q[b]???q[b]的大小已经不是sizeof(s....)了。                                                                                       可我看了半天也不知  
      fread(&q[b],sizeof(struct   student),1,fp);                   为什么会写入失败        
      free(q);}  
   
   
  Top

2 楼newegg2002(同志们,同胞们,大学的四年,是扎实基础的四年!!)回复于 2004-05-02 10:54:54 得分 0

楼主  
  m=wherey();  
    gotoxy(22,m-4);  
  这两个函数的原型是什么啊?还是要包含什么头文件啊...给出来好看一点,Top

3 楼cngdzhang()回复于 2004-05-02 12:31:17 得分 50

fp=fopen("c:\shuju","wb");  
   
  有问题啊    
   
  改为  
  fp=fopen("c:\\shuju","wb");Top

4 楼rorot(rorot)回复于 2004-05-02 12:54:38 得分 50

1   把你的编译器从TC换成VC或者DEV或者BC,看看你的代码的排版,那是给人看的吗?  
  2   找点C语言的书,看看人家的fopen()函数里对文件路径的格式和参数要求。  
  3   数数你的代码里就这么一点代码用了多少的全局变量,能减少一些么?  
  4   在不要用你的函数拼音来写函数名了。  
   
  你自己写代码写的爽,也得考虑俺们读起来也要痛快啊,读楼主得代码就两个字“别扭”  
  Top

相关问题

  • 重分求解!!!
  • 重金求解
  • 高分求解!
  • !!!高分求解!!!
  • 高分求解???
  • 101分求解
  • ~~~~~~~~~~高分求解~~~~~~~~~~~
  • 高分求解!
  • 高分求解。
  • ”高分求解“

关键词

  • zhongfen
  • paiming
  • gotoxy
  • chinese
  • scanf
  • maths
  • please input
  • struct student
  • printf
  • break

得分解答快速导航

  • 帖主:bnbn3
  • cngdzhang
  • rorot

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo