秦九韶算法C语言

秦九韶算法C语言

  最近在学数值分析,需要进行算法编码,小小的记录一下自己的实验!
  
  关于秦九韶算法求解多项式,开始之前看了很多同学的分享,基本采用的都是数组存储系数再进行循环。
   但是直接用C语言数组静态存储感觉不太方便,必须提前约定数组规模,无法随着输入数的改变而变动。
   所以这里就换成了动态内存分配的方法qwq, 采用malloc函数进行空间调配。

代码实现

#include<stdio.h>
#include<stdlib.h>
int main() {
	int length = 0;//动态数组长度,需要输入,后续分配length个空间
	while (1) {
		printf("请输入共有多少系数:\n");
		scanf_s("%d", &length);
		printf("请输入系数分别为:\n");//a0,a1,a2,...an
		int *ptr = (int*)malloc(sizeof(int)*length);
		int i = 0;
		for (i = 0; i < length; i++) {
			scanf_s("%d", &ptr[i]);
		}
		int v = ptr[length - 1];//v=an初始值,秦九韶,v=v*x+an-k
		int x = 0;
		printf("请输入待求式x的值:\n");
		scanf_s("%d", &x);
		for (i = length - 1; i > 0; i--) {
			v = v*x + ptr[i - 1];
		}
		printf("最终结果为:%d\n", v);
		free(ptr);
	}
	return 0;
}

1.降序输入或是升序输入均可,记得改变循环部分就行;
2.数值用的int型,可以自己进行设定;
3.外层循环条件直接用的while(1)有些些些许的暴力,用EOF或者采用exit会好一点,但是条件判断用啥暂时没想好。。。就没写了
4.其他类似读取文件流啊等等各种数据操作方法尝试都可
5.因为用的vs2015,安全检测比较严格所以写的是scanf_s

emmm感觉也没啥补充的了,那就这样吧qwq!

运行截图

在这里插入图片描述

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值