| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 661 人关注过本帖
标题:求助 ,快要考试了,帮帮我吧
取消只看楼主 加入收藏
请教c语言
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-17
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
求助 ,快要考试了,帮帮我吧
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>

struct Node
{
    int data ;    //数据域
    struct Node * pNext ;   //指针域   
} ;

//函数声明
struct Node * create_list (void) ;
void traverse_list ( struct Node * ) ;

int main (void)
{
    struct Node * pHead = NULL ;   //等价于struct Node * pHead ;
    pHead = create_list ( ) ;//功能:创建一个非循环单链表,并将该链表的头结点的地址付给pHead
    traverse_list (pHead) ;
   
    return 0 ;
}

struct Node * create_list (void)
{
    int len ;//用来存放有效节点的个数
    int i ;
    int val ;//用来临时存放用户输入的节点的值   
    struct Node * pHead = (    struct Node * )malloc(sizeof(struct Node ) ) ;
    struct Node * pNew = (struct Node *)malloc(sizeof(struct Node ) ) ;//此处依然是  位置放置不对 ,和前面的 类似
    struct Node * pTail = pHead ;
    //分配了一个不存放有效数据的头结点   
    if (NULL==pHead)
    {
        printf ("分配失败,程序终止!\n") ;
        exit (-1) ;
    }
   
    pTail->pNext=NULL ;
    printf ("请输入您需要生成链表的节点个数;len =") ;
    scanf ("%d" ,&len) ;
   
    for ( i=0; i<len; ++i )
    {
        printf ("请输入%d个节点的值:", i+1) ;
        scanf ("%d", &val) ;
        
        if (pNew==NULL)
        {
            printf ("分配失败,程序终止!\n") ;
            exit (-1) ;//终止程序
        }
        pNew->data = val ;
        pTail->pNext = pNew ;
        pNew->pNext = NULL ;
        pTail = pNew ;               
    }
   
    return pHead ;   
}

void traverse_list (struct Node *pHead )
{
    struct Node * ptem= pHead->pNext ;
    while ( NULL != ptem )
    {
        printf ("%d\n" ,ptem->data ) ;
        ptem = ptem->pNext  ;
    }
   
    return ;
}

输出的结果是:
请输入您需要生成链表的节点个数;len =3
请输入1个节点的值:4
请输入2个节点的值:5
请输入3个节点的值:7
7
Press any key to continue
                                    为什么不是 4、5、7,而只有7 呀  求帮忙  万分叩谢!!
搜索更多相关主题的帖子: include return 
2013-08-17 20:10
请教c语言
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-17
收藏
得分:0 
回复 3楼 犿蚂
是是输出链表   你看最后的结果 :  输入 4、5、7  出来 只有7  这是很纠结的,我看了很长时=时间, 都没有看出来哪里有毛病
2013-08-17 21:25
请教c语言
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-8-17
收藏
得分:0 
回复 2楼 蚕头燕尾
结果为什么,只有 7输出 ,而不是  4、5、7  ,我用了while,怎么不行呀 ?? (我想问的问题在最后一行),谢谢 求帮忙
2013-08-17 21:28
快速回复:求助 ,快要考试了,帮帮我吧
数据加载中...
 
   



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

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