| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:求改进,求解释 !!
只看楼主 加入收藏
benetqq
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2012-6-4
结帖率:100%
收藏
 问题点数:0 回复次数:7 
求改进,求解释 !!
程序代码:
#include <stdio.h>
#include <malloc.h>
typedef struct node{
    int data;
    struct node *link;


}NODE;
int main(void){
    NODE *head;
    NODE *p;
    int n=3;
    create(head,n);
    print_str(head);
    getch();
    return 0;

}
create(NODE *head,int n){
    int a=1;
    NODE *p;
    for(;n>0;--n,a++){
        printf("Pleas Enter %d NUM:",a);
        p=(NODE *)malloc(sizeof(NODE));
        if(p==NULL)
            exit(0);
        scanf("%d",&p->data);
        p->link=head->link;
        head->link=p;
    }
}
print_str(NODE *head){
    NODE *p;
    p=head->link;
    while(p){
        printf("%d\n",p->data);
        p=p->link;
    }

}
图片附件: 游客没有浏览图片的权限,请 登录注册
输入 3 2 1
   输出1 2 3 21504 0 ;
貌似我想要的结果不是这样的
亲们  求解释
搜索更多相关主题的帖子: create head 
2012-06-08 11:20
benetqq
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2012-6-4
收藏
得分:0 
程序会写,就是写起来费劲,代码会看,就是看起来要参考,道理懂得,就是懂得一知半解,半瓶子醋,能说会道,就是原理懂得,懂得不深,啥都知道,就是不知道到底自己知道什么。
2012-06-08 12:20
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 2楼 benetqq
话不能这么说 或者说这话应该让Z版说 我说的你说下是不是这么说的?

梅尚程荀
马谭杨奚







                                                       
2012-06-08 12:22
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

typedef struct node
{
    int data;
    struct node *link;
}NODE;

void create(NODE *head,int n)
{
    int a=1;
    NODE *p;
    for(;n>0;--n,a++)
    {
        printf("Pleas Enter %d NUM:", a);
        p=(NODE *)malloc(sizeof(NODE));
        if(p==NULL)
            exit(0);
        scanf("%d",&p->data);
        p->link = head ->link;
        head->link=p;
    }
}

void print_str(NODE *head)
{
    NODE *p;
    p=head->link;
    while(p != NULL)
    {
        printf("%d\n",p->data);
        p=p->link;
    }
}

int main(void)
{
    NODE *head;
    head = (NODE *)malloc(sizeof(NODE));
    int n=3;

    head ->link = NULL;
    create(head,n);
    print_str(head);
    getchar();

    return 0;
}
VC下改的可以倒着输出 你想什么效果?

梅尚程荀
马谭杨奚







                                                       
2012-06-08 12:53
benetqq
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2012-6-4
收藏
得分:0 
回复 4楼 有容就大
2楼的是粘贴别人的,我看着很符合我现在的状况  就给粘过来了   
上面的问题倒着输出也没问题  关键是怎么就输出了个 21400   和 0 就感觉的不对了
2012-06-08 15:21
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:0 
原题目都没有,?
2012-06-08 15:27
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 5楼 benetqq
我两的编译器不一样吧 你给的原程序我在VC上根本编译不过, 我发那个是自己改的,貌似修改了好些地方。
在VC上不给head动态分配个内存就会出问题,你那个为什么能输出结果 不解。貌似就是这个地方,while(p != NULL)
循环可能是越界了,顺便提醒下 malloc后要free我也忘了 不好意思 注意下这个。

梅尚程荀
马谭杨奚







                                                       
2012-06-08 18:34
benetqq
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2012-6-4
收藏
得分:0 
回复 7楼 有容就大
我用的是win TC 函数前面加个void  反而编译不通过
2012-06-09 15:17
快速回复:求改进,求解释 !!
数据加载中...
 
   



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

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