写一个程序用C语言链表输入输出一元多项式
时间: 2024-10-14 08:15:17 浏览: 45
在C语言中,我们可以使用链表来表示一元多项式的系数和对应的项。首先,我们需要定义一个结构体`Term`来存储每一项的系数和指数:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int coefficient; // 系数
int exponent; // 指数
} Term;
// 链表节点定义
typedef struct Node {
Term term;
struct Node* next;
} ListNode;
// 创建新节点
ListNode* createNode(int coef, int exp) {
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->term.coefficient = coef;
newNode->term.exponent = exp;
newNode->next = NULL;
return newNode;
}
// 添加项到链表
void addTermToList(ListNode** head, int coef, int exp) {
ListNode* newNode = createNode(coef, exp);
if (*head == NULL) {
*head = newNode;
} else {
ListNode* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
// 打印链表表示的一元多项式
void printPolynomial(ListNode* head) {
printf("Polynomial: ");
ListNode* temp = head;
while (temp != NULL) {
printf("(%d*x^%d) + ", temp->term.coefficient, temp->term.exponent);
temp = temp->next;
}
printf("0)\n"); // 去掉最后一个+号
}
int main() {
// 初始化头指针
ListNode* polynomialHead = NULL;
// 输入多项式的项
int coef, exp;
while (scanf("%d %d", &coef, &exp) != EOF && coef != 0) { // 用户输入系数和指数
addTermToList(&polynomialHead, coef, exp);
}
// 输出多项式
printPolynomial(polynomialHead);
return 0;
}
```
这个程序允许用户通过交互输入系数和指数,然后会打印出一元多项式的形式。当你运行此程序时,可以按照提示依次输入各个项的数据。
阅读全文