简单多项式求导

本文介绍了如何使用C语言结合单链表数据结构来实现简单多项式的求导过程,详细阐述了算法的设计和实现步骤,包括创建链表、表示多项式、计算导数并更新链表节点。

#include <cstdio>
#include <cstdlib>

#define OVERFLOW -2

typedef struct node
{
	float cex;           //多项式系数
	float cep;           //多项式指数
	node* next;
}node;

//初始化
void Init(node & p)
{
	p.cep=0;
	p.cex=0;
	p.next=NULL;
}

//输入多项式
void Input(node & p)
{
	int n;
	node *ptr,*q=&p;

	printf("请输入一元多项式的位数:\n");
	scanf("%d",&n);
	while(n<1)
	{
		printf("输入有误,位数不能小于 1!\n");
		scanf("%d",&n);
	}

	printf("请输入多项式的 系数 和 指数(用逗号隔开)\n");

	for(int i=0;i<n;++i)
	{
		ptr=(node*)malloc(sizeof(node));
		if(!ptr)
		{
			printf("内存分配失败!\n");
			exit(OVERFLOW);
		}

		scanf("%f,%f",&ptr->cex,&ptr->cep);

		ptr->next=q->next;
		q->next=ptr;
		q=q->next;
	}
}

//求导
void Derivative(node & p)
{
	float cex=0;
	float cep=0;
	node *pcur=p.next;

	printf("\n");

	while(pcur!=NULL)
	{
		cep=pcur->cep-1;
		cex=pcur->cex * pcur->cep;
		printf("%.2f X^%.2f ",cex,cep);
		if((pcur=pcur->next)!=NUL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值