标题:双向循环链表程序运行弹出了name.exe已停止工作对话框,然后下面有调试停止 ...
取消只看楼主
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
结帖率:100%
已结贴  问题点数:20 回复次数:4 
双向循环链表程序运行弹出了name.exe已停止工作对话框,然后下面有调试停止这些选项
程序如下:
才刚写了一个创建的函数,用P指针开拓节点,q记录最后开拓的节点,head是头结点


#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
static int n=0;
struct node
{
    int num;
    int score;
    struct node *next;
    struct node *prior;
};
struct node *creat()
{    struct node *head;
    struct node *p,*q;
    head=NULL;
    p=q=(struct node *)malloc(sizeof(struct node));
    printf("第%d个学生信息:\n",++n);
    printf("学号:");
    scanf("%d",&p->num);
    while(p->num != 0)
    {
        
        printf("成绩:");
        scanf("%d",&p->score);
        
        if(head=NULL)
            head=p;
        if(head!=NULL)
        {
            q->next=p;
            p->prior=q;
            q=p;
        }
        p=(struct node*)malloc(sizeof(struct node));
        printf("第%d个学生信息:\n",++n);
        printf("学号:");
        scanf("%d",&p->num);
    }
    n--;
    q->next=head;
    head->prior=q;
    free(p);

    printf("创建成功\n");
    return(head);


}
void main()
{
creat();
}
搜索更多相关主题的帖子: head include 链表程序 对话框 
2013-04-12 16:52
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
得分:0 
大神帮忙看看呗,编译链接都是没错的
2013-04-12 16:52
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
得分:0 
再补充一下就是输入的节点num为0表示创建结束,而我的这个程序也是在输入num为0的时候弹出程序停止运行的
2013-04-12 16:56
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
得分:0 
回复 4楼 邓士林
回答的太好了,我也是刚发现判断写成赋值了,囧!
至于第二第三个问题,我还得思考一下,呵呵
2013-04-12 17:15
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
得分:0 
回复 4楼 邓士林
第二个问题不是的,前面已经定义过q了,并且用q记录了最近一个成功开辟的节点
第三个我在网上也看到别人程序有写这句判断的,刚懒得写了,,,以后要养成好习惯
2013-04-12 17:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-403997-1-1.html




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

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