| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:帮忙看下错误吧,真的看晕了.顺便给个所有调试方法的视频教程谢谢.
只看楼主 加入收藏
mylzy159
Rank: 2
等 级:论坛游民
帖 子:61
专家分:23
注 册:2009-4-12
结帖率:100%
收藏
已结贴  问题点数:16 回复次数:10 
帮忙看下错误吧,真的看晕了.顺便给个所有调试方法的视频教程谢谢.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student
{
    char num[8];
    char name[10];
    int age;
    struct student *next;
};
struct student *creat(struct student *head)
{
    struct student *p1,*p2;
    int n,i=1;
    scanf("%d",&n);
    p2=p1=(struct student*)malloc(sizeof(struct student));
    while(i<=n)
    {
        scanf("%s",&p1->num);
        scanf("%s",&p1->name);
        scanf("%d",&p1->age);
        if(head==NULL) head=p1;
        else p2->next=p1;
        p2=p1;
        p1=(struct student*)malloc(sizeof(struct student));
        i++;
    }
    return head;
}
void print (struct student *head)
{
    struct student *p;
    p=head;
    while(p!=NULL)
    {
        printf("%s",p->num);
        printf("%s",p->name);
        printf("%d",p->age);
        p=p->next;
    }
}
main()
{
    struct student *head;
    creat(head);
    print(head);
}
搜索更多相关主题的帖子: 视频 教程 调试方法 
2009-09-26 16:10
mylzy159
Rank: 2
等 级:论坛游民
帖 子:61
专家分:23
注 册:2009-4-12
收藏
得分:0 
弱弱的问句..有人帮忙吗?
2009-09-26 16:59
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
请描述一下你的错误现象。
2009-09-26 17:11
血狼夜怨
Rank: 2
等 级:论坛游民
帖 子:13
专家分:22
注 册:2009-9-13
收藏
得分:0 
最好能把你的程序要解决的问题描述一下。就程序而言,最大的问题就是这:else p2->next=p1; p2是一个没有具体指向的指针,又何谈p2->next呢?如果你能把程序的目的描述清楚,或许我还可以帮你改改程序。
2009-09-26 17:40
rengang2005
Rank: 2
等 级:论坛游民
帖 子:23
专家分:57
注 册:2006-10-20
收藏
得分:0 
大哥,你那个head就没初始化,怎么可能对
2009-09-26 18:03
xdyuan33
Rank: 3Rank: 3
来 自:广西大学化工学院
等 级:论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
收藏
得分:0 
改了一下,感觉还是有点问题,再看看
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct student
{
    int num;
    char name[10];
    int age;
    struct student *next;
};
struct student *creat(void)
{
    struct student *p1,*p2,*head;
    int n,i=1;
    head=NULL;
    printf("\nEnter the digit n=");
    scanf("%d",&n);
    p2=p1=(struct student*)malloc(sizeof(struct student));
    while(i<=n)
    {
        scanf("%d",&p1->num);
        scanf("%s",&p1->name);
        scanf("%d",&p1->age);
        if(head==NULL) head=p1;
        else p2->next=p1;
        p2=p1;
        p1=(struct student*)malloc(sizeof(struct student));
        i++;
    }
    p2->next=NULL;
    return head;
}
void print (struct student *head)
{
    struct student *p;
    p=head;
    while(p!=NULL)
    {
    printf("%d ",p->num);
    printf("%s ",p->name);
    printf("%d ",p->age);
    p=p->next;
    }
}
main()
{
 
    struct student *head;
    head=creat();
    print(head);
}

参与切磋是美德,每天回帖即可获得10分可用分!
2009-09-26 18:11
xdyuan33
Rank: 3Rank: 3
来 自:广西大学化工学院
等 级:论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
收藏
得分:0 
char num[8];这个你是要做什么的是输入学号吧,我可是初学的有很多细节都不懂的不明白这个是什么,
是想输入8位数字的学号吗

参与切磋是美德,每天回帖即可获得10分可用分!
2009-09-26 18:19
xdyuan33
Rank: 3Rank: 3
来 自:广西大学化工学院
等 级:论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
收藏
得分:16 
我改的主要就是标*号那里,我试过输入1和2都没问题的,你对着看还有什么问题
#include <stdio.h>   
#include <string.h>   
#include <stdlib.h>   
struct student   
{   
    int num;    *********
    char name[10];   
    int age;   
    struct student *next;   
};   
struct student *creat(void)  *****************
{   
    struct student *p1,*p2,*head;   
    int n,i=1;   
    head=NULL;  ****************
    printf("\nEnter the digit n=");   
    scanf("%d",&n);   
    p2=p1=(struct student*)malloc(sizeof(struct student));   
    while(i<=n)   
    {   
        scanf("%d",&p1->num);   *******
        scanf("%s",&p1->name);   
        scanf("%d",&p1->age);   
        if(head==NULL) head=p1;   
        else p2->next=p1;   
        p2=p1;   
        p1=(struct student*)malloc(sizeof(struct student));   
        i++;  
    }   
    p2->next=NULL;  ***************
    return head;   
}   
void print (struct student *head)   
{   
    struct student *p;   
    p=head;   
    while(p!=NULL)   
    {   
    printf("%d ",p->num);   ************
    printf("%s ",p->name);   
    printf("%d ",p->age);   
    p=p->next;   
    }   
}   
main()   
{   
  
    struct student *head;   
    head=creat();  ******************
    print(head);   
}

参与切磋是美德,每天回帖即可获得10分可用分!
2009-09-26 18:34
mylzy159
Rank: 2
等 级:论坛游民
帖 子:61
专家分:23
注 册:2009-4-12
收藏
得分:0 
回复 8楼 xdyuan33
用int 类型做学号的话..如果前面显示0050 好像就只能显示50吧?  搞了半天我原来是指针忘记赋初值..晕类..哎,对着电脑久了头都晕了.  总之,谢谢.

[ 本帖最后由 mylzy159 于 2009-9-26 20:03 编辑 ]
2009-09-26 19:48
xdyuan33
Rank: 3Rank: 3
来 自:广西大学化工学院
等 级:论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
收藏
得分:0 
对了,我也说了我不太懂那个啊

参与切磋是美德,每天回帖即可获得10分可用分!
2009-09-26 20:01
快速回复:帮忙看下错误吧,真的看晕了.顺便给个所有调试方法的视频教程谢谢.
数据加载中...
 
   



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

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