这个小题目吧我折磨的够呛,,主要在于特殊情况考虑不周,测试用例老是通不过。。

小结:

做法:用一个数组来存储多项式,用下标表示幂次数,数组元素值表示对应系数

输出特殊格式考虑:系数和幂次数为0,1,-1的情况,负系数的对加号输出的影响


题目内容:

一个多项式可以表达为x的各次幂与系数乘积的和,比如:

2x6+3x5+12x3+6x+20

现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。

程序要处理的幂最大为100。

输入格式:

总共要输入两个多项式,每个多项式的输入格式如下:

每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。

注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。

输出格式:

从最高幂开始依次降到0幂,如:

2x6+3x5+12x3-6x+20

注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。

输入样例:

6 2

5 3

3 12

1 6

0 20

6 2

5 3

2 12

1 6

0 20

输出样例:

4x6+6x5+12x3+12x2+12x+40

时间限制:500ms内存限制:32000kb

代码:

 #include <stdio.h>
 #include <math.h>

 int main() {

     ]={};
     int p,c; //power,coeff
     ; //相加后多项式非0系数的个数
     ;

     //读入两个多项式并相加
     ;i<;i++){
         p=, c=;
         do{
             scanf("%d %d",&p,&c);
             coeff[p] += c;
         });
     }

     //统计相加后多项式非0系数的个数
     ;i>-;i--){
         ){
             cnt_coeff += ;
         }
     }
     // 输出为0
     ){
         printf("%d\n",cnt_coeff);
     }
     else{
         ;i>-;i--){
             //从第二项开始,正系数项前面打印+号
             ){
                 printf("+");
             }
             //讨论系数,幂次数为0,1,-1的输出情况
             ){
                 ){
                     ]==){
                         printf("x");
                     }]==-){
                         printf("-x");
                     }){
                         printf("%dx",coeff[i]);
                     }
                 }else{
                     ){
                         printf("x%d",i);
                     }){
                         printf("-x%d",i);
                     }){
                         printf("%dx%d",coeff[i],i);
                     }
                 }

             }else{
                 ] != ){
                     printf(]);
                 }
                 ] == ){
                     printf("\n");
                 }
             }
             //只要coeff[i]!=0,那么输出的项且被涵盖在上述分支当中,
             //因此循环第一次执行到这里并满足条件时第一项已经输出
             ){
                 flag = ;
             }
         }
     }

     ;
 }

【C语言】多项式加法(mooc第七周测试题)的更多相关文章

  1. 网易云课堂_C语言程序设计进阶_第七周:文件:文件访问、格式化输入输出、二进制输入输出

    7.1文件 7.2底层操作 7.1文件 格式化的输入输出 printf %[flags][width][.prec][hIL]type Flag 含义 - 左对齐 + 在前面放+或- (space) ...

  2. 程序设计入门——C语言 第7周编程练习 1多项式加法(5分)

    第7周编程练习 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

  3. 中国MOOC_零基础学Java语言_第5周 数组_1多项式加法

    第5周编程题 查看帮助 返回   第5周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截 ...

  4. C语言程序设计I—第七周教学

    第七周教学总结(14/10-20/10) 教学内容 第二章 用C语言编写程序 2.5 生成乘方表和阶乘表 课前准备 在蓝墨云班课发布资源: PTA:2018秋第七周作业 分享码:FE065DC5D8C ...

  5. 七周七语言之用ruby做点什么

    如果你想获得更好的阅读体验,可以前往我在 github 上的博客进行阅读,http://lcomplete.github.io/blog/2013/05/25/sevenlang-ruby/. 每学一 ...

  6. 程序设计入门-C语言基础知识-翁恺-第七周:指针与字符串-详细笔记(七)

    目录 第七周:指针与字符串 7.1 指针初步 7.2 字符类型 7.3 字符串 7.3 课后练习 第七周:指针与字符串 7.1 指针初步 sizeof 是一个运算符,给出某个类型或变量在内存中所占据的 ...

  7. 网易云课堂_程序设计入门-C语言_第六章:数组_1多项式加法

    1 多项式加法(5分) 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出. 程序要处理的 ...

  8. C语言程序设计II—第七周教学

    第七周教学总结(8/4-14/4) 教学内容 本周的教学内容为:8.3 冒泡排序,知识点:指针与数组.重点难点:指针.数组与地址的关系:数组名作为函数参数.要求学生能够使用数组名作为函数参数进行熟练编 ...

  9. C语言--第七周作业评分(5班)

    作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1304 一.评分要求 要求1 完成PTA第七周所有题,总共两次题,每次12.5 ...

随机推荐

  1. Capsules for Object Segmentation(理解)

    0 - 背景 今年来卷积网络在计算机视觉任务上取得的显著成果,但仍然存在一些问题.去年Hinton等人提出了使用动态路由的新型网络结构——胶囊网络来解决卷积网络的不足,该新型结构在手写体识别以及小图像 ...

  2. kali中的webshell工具--webacoo

    webacoo webshell其实就是放置在服务器上的一段代码 kali中生成webshell的工具 WeBaCoo(Web Backdoor Cookie) 特点及使用方法 类终端的shell 编 ...

  3. 普通用户授予select any table 权限

    基于应用的需要,让普通用户有访问sys表的权限,于是就想到了select any table 的权限,可是当授权以后发现还是不能访问sys的表,经过查一系列资料,发现select any table不 ...

  4. SHOT

  5. MSYS 编译 nginx rtmp-module

    1. 下载源码 http://hg.nginx.org/nginx nginx-c74904a17021.zip https://github.com/arut/nginx-rtmp-module n ...

  6. 3种自增ID说明

    自增ID 1.@@identity 所有会话所有表最后一个自增ID 2.IDENT_CURRENT('表名') 所有会话当前表的自增ID 3.SCOPE_IDENTITY() 当前会话所有表最后一个自 ...

  7. 简单python接口测试编写和django开发环境的搭建

    安装django环境 启动django D:\python\imooc>python manage.py runserver 0.0.0.0:8000 命令行下django新建app D:\py ...

  8. 3D 散点图的绘制

    一般情况下,我们用到最多的是axes3d() 中的axes3d.Axes3D()类,AxesD() 类下面存在散点图,线性图,柱状图,曲线图等各种制图方式. 采用matplotlib 生成散点图. 一 ...

  9. 二丶Django~1

      一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于 ...

  10. ssh登录,爬坑系列

    最近在实验室弄ssh登录,结果被虐了,要注意以下: 1.主机名不能包括   -     _    !  等非法字符. 2.如果hadoop格式化时,报:“SHUTDOWN_MSG: Shutting ...