| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 372 人关注过本帖
标题:关于链表的输入,求教!!!!已上传全部代码
只看楼主 加入收藏
旭日孤帆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:180
注 册:2012-1-3
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
关于链表的输入,求教!!!!已上传全部代码
程序代码:
    FILE *fp;
    struct wm *p0;
    struct q *p1,*p2,*head=0;
    int n=0;
    char x=0;
    p0=(struct wm*)malloc(len1);
    printf("请输入链表名称:\n");
    scanf("%s",p0->wjm);
a: if((fp=fopen(p0->wjm,"w+"))==NULL)
   {printf("链表名不能为空,请重新输入\n");
   scanf("%s",p0->wjm);
   goto a;
   }
    
b:  printf("请输入链表内容:\n");
    p1=(struct q*)malloc(len);
    scanf("%d%s%f%f%f%d%d%d%c",u.num,u.name,u.yw,u.sx,u.yy,u.v.year,u.v.yeu,u.v.ri,u.st);
    getchar();
    u.pj=(u.yw+u.sx+u.yy)/3;
    if(u.st=='s')scanf("%s",u.w.zhiwu);
    else if(u.st=='t')scanf("%d",u.w.banji);
    else("老师请输入t  学生请输入s\n");
    if(p1->num==NULL)
    {
        printf("学号不能为空");
         goto b;
    }
   
    while(p1->num!=NULL)
    {
        n=n+1;
        if(n==1) p0->lb=p2=p1;
        p1=(struct q*)malloc(len);
c:      scanf("%d%s%f%f%f%d%d%d%c",p1->num,p1->name,u.yw,u.sx,u.yy,u.v.year,u.v.yeu,u.v.ri,u.st);
        getchar();
         u.pj=(u.yw+u.sx+u.yy)/3;
           if(p1->num==NULL)
    {
        printf("学号不能为空");
         goto c;
    }
        if(u.st=='s')scanf("%s",u.w.zhiwu);
        else if(u.st=='t')scanf("%d",u.w.banji);
        else("老师请输入t  学生请输入s\n");
        p2->next=p1;
    }
    p2->next=0;
main函数没写上来,否则太多了
编译连接都没问题
只是到了goto b返回的位置粗体的那些,没办法输入,总提示内存不能为written
哪错了呀

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
已经找到错了,就是代价大了点,
我是一行行删代码才找到的!!!!
找到以后我连掐死自己的心都有了!!!
罚自己写500遍取地址符!!!!!!
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

[ 本帖最后由 旭日孤帆 于 2012-1-28 14:22 编辑 ]
2012-01-27 14:06
xs47968224
Rank: 2
等 级:论坛游民
帖 子:18
专家分:52
注 册:2010-3-11
收藏
得分:10 
getchar();
   
    if(u.st=='s')scanf("%s",u.w.zhiwu);
    else if(u.st=='t')scanf("%d",u.w.banji);
    else("老师请输入t  学生请输入s\n");
    if(p1->num==NULL)
    {
        printf("学号不能为空");
         goto b;
    }
没有完整的,也没办法调试,就大概看一下,觉得这里是不是有点问题,getchar();意在输入一个字符;然后,接着就是判断,但判断跟getchar();又没关系,判断的是u.st的值。再然后,最后一个else if判断的又是p1->num的值。是不是应该p1先有个指向问题呢?我眼泏,也没看出来p1指向哪里,如果我错了,请指教,我也是来学习的。新手。。。高手勿喷

欢迎来访-> 小Z博客
2012-01-27 15:32
快速回复:关于链表的输入,求教!!!!已上传全部代码
数据加载中...
 
   



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

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