PTA数据结构与算法题目集(中文) 7-16

PTA数据结构与算法题目集(中文)  7-16

7-16 一元多项式求导 (20 分)
 

设计函数求一元多项式的导数。

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0
题目分析:要注意判断输入停止的标志 利用~scanf来判断 其它问题到没发现 (os:看了其它人的写法 发现自己写的不够灵性 代码还是一言难尽)
 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include<stdio.h>
 3 
 4 struct PolyNode
 5 {
 6     int Coefficient; //系数
 7     int Exponent;    //指数
 8 }Polynomial[10000],Poly[10000];
 9 int N = 0;
10 int M = 0;
11 void Read()
12 {
13     int Coe, Exp;
14     while (~scanf("%d %d", &Coe, &Exp))
15     {
16         Polynomial[N].Coefficient = Coe;
17         Polynomial[N++].Exponent = Exp;
18     }
19 }
20 void Judge()
21 {
22     for (int i = 0; i < N; i++)
23     {
24         Polynomial[i].Coefficient *= Polynomial[i].Exponent;
25         Polynomial[i].Exponent--;
26         if (Polynomial[i].Coefficient != 0)
27         {
28             Poly[M].Coefficient = Polynomial[i].Coefficient;
29             Poly[M].Exponent = Polynomial[i].Exponent;
30             M++;
31         }
32     }
33 }
34 void Print()
35 {
36     for (int i = 0; i < M - 1; i++)
37         printf("%d %d ", Poly[i].Coefficient, Poly[i].Exponent);
38     printf("%d %d", Poly[M - 1].Coefficient, Poly[M - 1].Exponent);
39     
40 }
41 int main()
42 {
43     Read();
44     Judge();
45     Print();
46     return 0;
47 }
View Code

 

posted @ 2019-10-04 17:28  57one  阅读(293)  评论(0编辑  收藏  举报