首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一元多项式的创建解决办法

2012-03-19 
一元多项式的创建#include stdio.h#include stdlib.htypedef struct node{float coef//系数int exp/

一元多项式的创建
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
float coef;//系数
int exp;//指数
struct node *next;
}polynode, *polynlink;
polynlink CreatePolyn(int n)//n为定义插入项的项数
{
polynlink h, p, q;
int i;
h = (polynlink)malloc(sizeof(struct node));//创建一个新的链表的头指针
h->next = NULL;//让头指针的指针域为空
p = h;
for(i = 1; i <= n; ++i)
{
q = (polynlink)malloc(sizeof(struct node));//创建新的结点
printf("输入第%d项的系数!\n", i);
scanf("%f", &(p->coef ));
printf("输入第%d项的指数!\n",i);
scanf("%d", &(p->exp ));
q ->next = NULL ;//这里是让结尾的指针域为空
p ->next = q;
p = q;
}//for
printf("打印最后一项的系数和指数%f%d\n", q->coef , p->exp );//这里打印的东西有问题
return h;
}
帮忙看下是哪里错了 输入最后的一项的系数和指数有问题

[解决办法]

C/C++ code
printf("输入第%d项的系数!\n", i);        scanf("%f", &(q->coef ));        printf("输入第%d项的指数!\n",i);        scanf("%d", &(q->exp ));
[解决办法]
C/C++ code
for(i = 1; i <= n; ++i){//。。。p ->next = q;//p = q;你这儿让最后一个节点都等于NULL,打印当然出问题了(这是①)}//for
[解决办法]
C/C++ code
printf("打印最后一项的系数和指数%f%d\n", p->coef , p->exp );//这儿改下(这是②)
[解决办法]
q ->next = NULL ;//这里是让结尾的指针域为空
 p ->next = q;


这里q的后一个为空,那么把q再赋给p最后一个节点没有用了。成了废的节点。
[解决办法]
我不是改好了吗。。。
[解决办法]
C/C++ code
polynlink CreatePolyn(int n)//n为定义插入项的项数{    polynlink h, p, q;    int i;    h = (polynlink)malloc(sizeof(struct node));//创建一个新的链表的头指针     h->next = NULL;//让头指针的指针域为空     p = h;    for(i = 1; i <= n; ++i)    {        q = (polynlink)malloc(sizeof(struct node));//创建新的结点        printf("输入第%d项的系数!\n", i);        scanf("%f", &(p->coef ));        printf("输入第%d项的指数!\n",i);        scanf("%d", &(p->exp ));        q ->next = NULL ;//这里是让结尾的指针域为空         p ->next = q;        //p = q;    }//for    printf("打印最后一项的系数和指数%f%d\n", p->coef , p->exp );     return h;}
[解决办法]
探讨
引用:

C/C++ code
polynlink CreatePolyn(int n)//n为定义插入项的项数
{
polynlink h, p, q;
int i;
h = (polynlink)malloc(sizeof(struct node));//创建一个新的链表的头指针
h->next = NULL;//让头指针的指针域为空
p……

热点排行