| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1440 人关注过本帖
标题:求大神帮忙解答一下
只看楼主 加入收藏
wan571414
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-3-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
求大神帮忙解答一下
# include <stdio.h>
# include <stdio.h>
# include <stdlib.h>
typedef    struct Node {
    int data;//数据域
    struct Node * pNEXT;//指针域
}NODE, *PNODE;

PNODE create_list(void);
void  traverse_list (PNODE pHead);

int main (void)
{
    PNODE pHead;
 pHead = NULL;
    pHead = create_list();//创建一个非循环单 链表
    traverse_list (pHead);
     
    return 0;
 }
PNODE  create_list(void)
{
    int i;
    int len;
    int val;
    PNODE pHead = (PNODE)malloc(sizeof(NODE)) ;
   
    if (NULL == pHead)
    {
        printf("分配失败,程序终止!\n");
        exit (-1);
      }  
      
    PNODE pToli = pHead ;
    pToli->pNEXT = NULL;
    pHead->pNEXT = pToli;
    printf ("请输入你要分配的节点个数: len = ");
    scanf ("%d",&len);
   
    for (i = 0; i < len; ++i)
    {
        printf("请输入第%d个节点的值",i+1);
        scanf("%d",val);
        
    PNODE pNew = (PNODE)malloc(sizeof(NODE)) ;
        if (NULL == pNew)
    {
        printf("分配失败,程序终止!\n");
        exit (-1);
      }  
        pNew->data = val;
        pToli->pNEXT = pNew;
        pNew->pNEXT = NULL;
        pToli = pNew;
    }
    return pHead;
}
void  traverse_list (PNODE pHead)
{
    PNODE p = pHead->pNEXT;
    while ( NULL != p)
    {
        printf ("%d ", p->data);
        p = p->pNEXT;
        
    }
    printf("\n");
   
}



为什么只能输入一个节点的值     第二个就不行了      
搜索更多相关主题的帖子: Node int void NULL printf 
2019-03-23 14:38
ZJYTY
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:92
专家分:700
注 册:2018-12-20
收藏
得分:10 
除了 scanf("%d",val);有点问题,这段程序可以正常运行的吧?

-------------------------------若有不当之处,敬请谅解-------------------------------
2019-03-23 15:42
wan571414
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-3-23
收藏
得分:0 
回复 2楼 ZJYTY
输入第一个节点的值过后    就崩溃了   我使用别人的源代码就没有问题   不知道错在哪里
2019-03-24 14:06
ZJYTY
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:92
专家分:700
注 册:2018-12-20
收藏
得分:0 
回复 3楼 wan571414
可以试着调试一下,看看是在哪里出错的

-------------------------------若有不当之处,敬请谅解-------------------------------
2019-03-24 14:31
沓炅
Rank: 2
等 级:论坛游民
帖 子:22
专家分:63
注 册:2017-8-13
收藏
得分:10 
程序代码:
# include <stdio.h>
# include <stdio.h>
# include <stdlib.h>
typedef    struct Node {
    int data;
    struct Node * pNEXT;
}NODE, *PNODE;

PNODE create_list(void);
void  traverse_list (PNODE pHead);

int main (void)
{
    PNODE pHead; 

 pHead = NULL;
    pHead = create_list(); 
    traverse_list (pHead);
     
    return 0;

 } 
PNODE  create_list(void)
{
    int i;
    int len;
    int val;
    PNODE pHead = (PNODE)malloc(sizeof(NODE)) ;
    
    if (NULL == pHead)
    {
        printf("分配失败,程序终止!\n");
        exit (-1);
      }  
      
    PNODE pToli = pHead ;
    pToli->pNEXT = NULL;
    pHead->pNEXT = pToli;
    printf ("请输入你要分配的节点个数: len = ");
    scanf ("%d",&len);
    
    for (i = 0; i < len; ++i)
    {
        printf("请输入第%d个节点的值",i+1);
        scanf("%d",&val);//这里出错了 
        
    PNODE pNew = (PNODE)malloc(sizeof(NODE)) ;
        if (NULL == pNew)
    {
        printf("分配失败,程序终止!\n");
        exit (-1);
      }  
        pNew->data = val;
        pToli->pNEXT = pNew;
        pNew->pNEXT = NULL;
        pToli = pNew;
    }
    return pHead;
}
void  traverse_list (PNODE pHead)
{
    PNODE p = pHead->pNEXT;
    while ( NULL != p)
    {
        printf ("%d ", p->data);
        p = p->pNEXT;
        
    }
    printf("\n");
    
}


2019-03-25 12:23
wan571414
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-3-23
收藏
得分:0 
回复 4楼 ZJYTY
好的  
2019-03-25 12:34
快速回复:求大神帮忙解答一下
数据加载中...
 
   



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

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