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

一元多项式的创建
#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……