| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:一元多项式
只看楼主 加入收藏
jfckpep
Rank: 1
等 级:新手上路
帖 子:40
专家分:2
注 册:2010-4-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
一元多项式
下面程序为什么运行不了?
#include <stdio.h>
#include <stdlib.h>
#include <process.h>

typedef struct{
    float coef;
    int expn;
}Elem;
typedef struct Node{
    Elem  data;
    struct Node  *next;
}node, *NodePos;

typedef struct list
{
    NodePos head,tail;
    int length;
};

int Initlist(struct list *l)
{   
    l->head=l->tail=(NodePos)malloc(sizeof(node));
    if (!l->head)
    {
        return 0;
        exit(-1);
    }
    l->tail->next=NULL;
    l->head->next=l->tail->next;
    return 1;
   
}
int MakeNode(struct list *l,Elem e)
{
    NodePos n;
    n=(NodePos)malloc(sizeof(node));
    if(!n)
    {
        exit(-1);
        return 0;
    }
    n->data.coef=e.coef;
    n->data.expn=e.expn;
    l->tail->next=n;
    l->tail=n;
    l->tail->next=NULL;
    l->length++;
    return 1;
}

void creatpolyn(struct list *p)
{
    int i,expn,m;
    float coef;
    Elem e;
    printf("请输入多项式的项数m=");
    scanf("%d",&m);
    for (i=1;i<=m;i++)
    {
        printf("请输入多项式的第%d项的系数:",i);
        scanf("%f",&coef);
        e.coef=coef;
        printf("请输入多项式的第%d项的指数:",i);
        scanf("%d",&expn);
        e.expn=expn;
        MakeNode(p,e);
    }
}
void printpolyn(struct list *p)
{
    NodePos r;
    r=p->head;
    while (r !=NULL)
    {
        printf("%f*X^%d",r->data.coef,r->data.expn);
        r=r->next;
    }
}
main()
{
    struct list *pa;
    pa=NULL;
    Initlist(pa);
    creatpolyn(pa);
    printpolyn(pa);
}







搜索更多相关主题的帖子: 多项式 
2010-04-25 17:41
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:20 
int Initlist(struct list *l)
{   l=(struct list*)malloc(sizeof(struct list));加这句
    l->head=l->tail=(NodePos)malloc(sizeof(node));
    if (!l->head)
你连l的空间都没给 你去给他里面的成员开辟内存........
2010-04-25 20:08
PP_make
Rank: 2
等 级:论坛游民
帖 子:21
专家分:62
注 册:2010-4-25
收藏
得分:0 
你定义的结构体是这样的:
图片附件: 游客没有浏览图片的权限,请 登录注册

不知道是不是你的本意,但你的程序中的 l->head->next=l->tail->next;
l->tail->next=n;
    l->tail=n;
    l->tail->next=NULL;
都明显出现了逻辑上的错误了,如果 head 是做为头结点指针,tail 作为尾结点指针的话,就该在结构体外面定义的:
struct list *head , *tail ; 这样的话程序中很多都要改的了!呵呵

2010-04-25 23:06
jfckpep
Rank: 1
等 级:新手上路
帖 子:40
专家分:2
注 册:2010-4-25
收藏
得分:0 
回复 2楼 hahayezhe
谢谢,不过为什么一定要为l分配空间?能说说吗?
2010-04-27 15:23
jfckpep
Rank: 1
等 级:新手上路
帖 子:40
专家分:2
注 册:2010-4-25
收藏
得分:0 
回复 3楼 PP_make
怎样该,能帮一下吗?麻烦了。
2010-04-27 18:18
快速回复:一元多项式
数据加载中...
 
   



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

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