怎么用C语言做一个一元多项式的程序

用链表表示一元多项式(系数和指数)建立两个多项式链表实现两个多项式的加法、减法和乘法将运算前和运算后的多项式以文本的方式存储在文件中尽量少用全局变量。本人大一小白,教材是... 用链表表示一元多项式(系数和指数)
建立两个多项式链表
实现两个多项式的加法、减法和乘法
将运算前和运算后的多项式以文本的方式存储在文件中
尽量少用全局变量。
本人大一小白,教材是谭浩强的c程序设计(第四部)。求大神来解答
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
摩羯aaaaaassss
2019-08-31
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

#include <stdio.h>
#include<windows.h>
void re(int max,int number);                //判断符号输出
int main()
{   
    int number[101]={0};                    //存放指数幂
    int x1,x2;
    int esc=1,max=0;
    for(int i=0;esc==1;i++) {
        scanf("%d %d",&x1,&x2);
        if(i==0) {
            max=x1;
        }
        if(x2!=0){
            number[x1]+=x2;                 //同一个次幂的系数都存在数组的同一个位置
            // printf("%d",number[x1]); 
        }
        if(x1==0) {                         //数据停止录入的指令
            esc=0;
        }
        // printf("min=%d,max=%d\n",min,max);
    }
    int n_number[101]={0};                      //存放指数幂
    int n_max=0;
    for(int i=0;esc==0;i++) {
        scanf("%d %d",&x1,&x2);
        if(i==0) {
            n_max=x1;
        }
        if(x2!=0){
            n_number[x1]+=x2;                   //同一个次幂的系数都存在数组的同一个位置
            // printf("%d",number[x1]); 
        }
        if(x1==0) {                             //数据停止录入的指令
            esc=1;
        }
        // printf("min=%d,max=%d\n",min,max);
    }
    if(n_max>max) {                             //整个if用于将两个多项式的系数传给其中最大幂指数较大的数组
        for(int i=4;i>=0;i--) {                     
            if(number[i]!=0||n_number[i]!=0) {
                n_number[i]+=number[i];
                // printf("n_number[%d]=%d\n",i,n_number);
            }
            if(n_number[i]!=0){
                int data=n_number[i];
                // printf("%d",n_number[i]);
                re(i,data);
            }
        }
    }else {
        for(int i=100;i>=0;i--) {
            if(number[i]!=0||n_number[i]!=0) {
                number[i]+=n_number[i];
            }
            if(number[i]!=0) {
                int data=number[i];
                // printf("%d",number[i]);
                re(i,data);
            }                                       
        }
    }
    printf("\n");
   system("pause");
    return 0;
}
void re(int i,int number)
{
    if(number!=1){
        printf("%d",number);                //如果系数为1不输出系数,如果系数为-1输出负号
    }else if(number==-1) {
        printf("-");
    }
    if(i) {                                 //当指数不为0时输出x
        printf("x");
    }
    if(i>1) {                               //防止出现幂数为1的情况
        printf("%d",i);
    }
    if(i>0&&number>0){                  //系数为负数时不输出+号
        printf("+");
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式