02-线性结构2. 一元多项式求导 (25)
2015-06-17 17:54
423 查看
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
#include <stdio.h> #include <stdlib.h> typedef struct PolyNode * ptrPolynomial; typedef struct PolyNode { int coef; int expon; ptrPolynomial next; }PolyNode; ptrPolynomial createList(); void deriPoly(ptrPolynomial headNode); void printPoly(ptrPolynomial headNode); int main() { ptrPolynomial headNode; headNode = createList(); deriPoly(headNode); printPoly(headNode); return 0; } ptrPolynomial createList() { ptrPolynomial headNode = NULL, currentNode = NULL, prevNode = NULL; do { currentNode = (ptrPolynomial)malloc( sizeof( PolyNode ) ); scanf("%d%d", ¤tNode->coef, ¤tNode->expon); currentNode->next = NULL; if ( headNode == NULL ) { headNode = currentNode; prevNode = currentNode; continue; } prevNode->next = currentNode; prevNode = currentNode; } while ( getchar()!= '\n' ); return headNode; } void deriPoly(ptrPolynomial headNode ) { ptrPolynomial prev, cur; cur = prev = headNode; if ( headNode->next == NULL && headNode->expon == 0 ) { headNode->coef = 0; return; } while( cur != NULL ) { if ( cur->expon == 0 ) { prev->next = NULL; free( cur ); break; } cur->coef = cur->coef * cur->expon; cur->expon = cur->expon - 1; prev = cur; cur = cur->next; } } void printPoly(ptrPolynomial headNode ) { ptrPolynomial ptr; ptr = headNode; while ( ptr != NULL ) { if ( ptr->next == NULL ) { printf("%d %d", ptr->coef, ptr->expon); } else { printf("%d %d ", ptr->coef, ptr->expon); } ptr = ptr->next; } }
相关文章推荐
- 【每日算法】C语言8大经典排序算法(2)
- 使用TestNG进行模块自动化压力测试
- [LeetCode]Median of Two Sorted Arrays
- mysql 用非主键where语句报错Error Code: 1175.You are using safe update mode and you tried …
- 用Python写单向链表和双向链表
- maven项目放入tomcat中找不到jar包
- 如何给你个表增加一个列
- ios上架准备
- UIView
- HiWork将迎来重磅改变!!
- php中header函数参数的Cache-control:private,no-cache,must-revalidate,max-age的使用方法
- 微软100题(99)智力题
- nginx upstream一致性哈希的实现
- 阅读《构建之法》第13-17章
- 《人,绩效和职业道德》及博客的读后感
- Android 事件冒泡及捕获
- Web Service 接口测试知识(整理)
- UITableViewController
- 机器视觉开源代码集合
- ENVI5.1中Landsat 8数据大气校正