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

11 篇文章 1 订阅
9 篇文章 2 订阅

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

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

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

输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0

//第一个判断点是样例,第二个是输入,第四个是输出
#include<iostream>
#include<stdio.h>
#include<malloc.h>
using namespace std;
typedef struct Data{
    int ratioo;  //系数
    int index;  //指数

} Data;
typedef struct polynome
{
    Data data;
    struct polynome* next;

}  polynome;
int main()
{
    polynome *P,*q,*p;
    int r,i;
    P=(polynome*)malloc(sizeof(polynome));
    P->next=NULL;
    p=P;
    while(scanf("%d",&r)!=EOF)
    {
        scanf("%d",&i);
        q=(polynome*)malloc(sizeof(polynome));
        p->next=q;
        q->next=NULL;
        q->data.ratioo=r;
        q->data.index=i;
        p=p->next;
       // cout<<p->data.index<<endl;

    }
  //  cout<<"111"<<endl;
    p=P->next;

    while(p)
    {
        if(p->data.index==0)
        {
            p->data.ratioo=0;

        }
        else
        {
            p->data.ratioo=p->data.ratioo*p->data.index;
            p->data.index=p->data.index-1;

        }
        p=p->next;

    }
  //  cout<<"111"<<endl;
    p=P->next;
    int flag=0;  //用于计数
    if(p->data.ratioo==0)
        p=p->next;
    if(!p)
        cout<<"0 0"<<endl;
    while(p)
    {
        //cout<<"*"<<p->data.ratioo<<endl;
        if(flag==0&&p->data.ratioo!=0)
        {
               cout<<p->data.ratioo<<" "<<p->data.index;
                flag++;
        }

        else if(p->data.ratioo!=0)
            cout<<" "<<p->data.ratioo<<" "<<p->data.index;

        p=p->next;

    }

}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值