用C语言建立链表并输出链表内容。链表每个结点包括一元多项式的一项。 输入格式: 输入一行,给出多项式中的每一项,以(0,0)结束。 输出格式: 输出共一行,依次用格式%dx^%d输出一项的值。指数为0的项、指数或系数为1的项与书写习惯相同。
时间: 2024-03-12 13:47:54 浏览: 62
好的,我可以为您提供代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct Node {
int coef; // 系数
int exp; // 指数
struct Node *next; // 指向下一个结点的指针
} Node;
int main() {
Node *head = NULL; // 定义链表头指针
Node *p, *q; // 定义结点指针
int coef, exp; // 系数和指数
// 循环读入多项式每一项的系数和指数
while (1) {
scanf("%d%d", &coef, &exp);
if (exp == 0) {
break; // 输入结束
}
// 创建新结点
p = (Node*) malloc(sizeof(Node));
p->coef = coef;
p->exp = exp;
p->next = NULL;
// 插入链表尾部
if (head == NULL) {
head = p; // 空链表
} else {
q->next = p;
}
q = p;
}
// 遍历链表并输出每一项
p = head;
while (p != NULL) {
printf("%dx^%d", p->coef, p->exp);
p = p->next;
if (p != NULL) {
printf("+"); // 输出加号
}
}
// 释放链表内存
p = head;
while (p != NULL) {
q = p->next;
free(p);
p = q;
}
return 0;
}
```
输入示例:
```
2 3
-1 2
3 1
-5 0
0 0
```
输出示例:
```
2x^3-1x^2+3x^1-5x^0
```
阅读全文