IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言Math Dash的多项式相加程序 -> 正文阅读

[C++知识库]C语言Math Dash的多项式相加程序

代码主要实现将多项式转化为链表,并且利用该链表实现多项式的计算

代码如下:

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
	float coef,expn;
}Elemtype;
typedef struct PNode
{
	Elemtype data;
	struct PNode *next;
}*Polynomial;
void InitList(Polynomial *a)
{
	*a=(struct PNode*)malloc(sizeof(struct PNode));
	(*a)->next=NULL;
}
Polynomial CreatePolyn()
{
	Polynomial b;
	InitList(&b);
	int c;
	double d;
	printf("请输入您多项式项的数量\n");
	while((scanf("%lf",&d)!=1)&&(d!=(int)d))
	{
		getchar();
		fflush(stdin);
		printf("error!\n");
	}
	c=(int)d;
	int o;
	Elemtype *g;
	g=(Elemtype*)malloc(c*sizeof(Elemtype));
	for(o=0;o<c;o++)
	{
		double e,f;
		printf("请分别输入第%d个项的底数和指数\n底数:",o+1);
		while(scanf("%lf",&e)!=1)
		{
			getchar();
			printf("error!\n");
		}
		printf("指数:");
		while(scanf("%lf",&f)!=1)
		{
			getchar();
			printf("error!\n");
		}
		g[o].coef=e;
		g[o].expn=f;
	}
	for(o=0;o<c;o++)
	{
		Polynomial pre;
		pre=b;
		Polynomial q;
		q=pre->next;
		Polynomial h;
		h=(struct PNode*)malloc(sizeof(struct PNode));
		h->data=g[o];
		while(q&&q->data.expn<h->data.expn)
		{
			pre=q;
			q=q->next;
		}
		h->next=q;
		pre->next=h;
	}
	return b;
}
double g(Polynomial a,double c)
{
	double d=0;
	Polynomial b;
	b=a->next;
	while(b)
	{
		d=d+b->data.coef*pow(c,b->data.expn);
		b=b->next;
	}
	return d;
}
void jie_mian_system()
{
	Polynomial a;
	a=CreatePolyn();
	double d;
	printf("请输入变量:\n");
	while(scanf("%lf",&d)!=1)
	{
		getchar();
		fflush(stdin);
		printf("error!\n");
	}
	double c;
	c=g(a,d);
	printf("f(x)\n=f(%lf)\n=%lf\n",d,c);
	system("pause");
}
void name_system()
{
	char a[]="Math Dash的多项式相加程序";
	char b[sizeof(a)+6];
	sprintf(b,"title %s",a);
	puts(a);
	system(b);
	jie_mian_system();
}
main()
{
	name_system();
	return 0;
}

程序运行结果

Math Dash的多项式相加程序
请输入您多项式项的数量
6
请分别输入第1个项的底数和指数
底数:2
指数:3
请分别输入第2个项的底数和指数
底数:4
指数:2
请分别输入第3个项的底数和指数
底数:1
指数:5
请分别输入第4个项的底数和指数
底数:8
指数:5
请分别输入第5个项的底数和指数
底数:3
指数:2
请分别输入第6个项的底数和指数
底数:1
指数:2
请输入变量:
2
f(x)
=f(2.000000)
=336.000000
请按任意键继续. . .

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:03:10  更:2021-08-08 11:07:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 21:38:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码