PAT真题(C语言)——1002:A+B Polynomials

题目如下:
在这里插入图片描述
这道题目学习了网络上一种很精妙的方法,在这之前我的设计是老老实实的用一个超大数组,按照输出顺序依次存入这些数,这样做的弊端在于:这样的设计需要三个数组,分别用于存储输入的第一行、输入的第二行和输出的行,并且在向输出行复制数据时需要进行大量的判断,如果说,题目明确输入的数据按照指数大小从大到小排列,那么输出会容易一些,但是题目并未说明这一点(不过作为多项式输入,我觉得一般也是从大到小排列的)。既然题目没有说,我们也不好去擅自认为是这样,因此出现了第二种方法。
想法很简单,即把数组的下标作为指数,数组中存的数即为对应下标指数的系数,比如输入中的第一行:2 1 2.4 0 3.2就可以保存为:a[1] = 2.4,a[0] = 3.2,这样的话在输出阶段就能够少很多次判断,并且全程只需要一个数组。
下面先放正确通过的代码:

#include <stdio.h>

#define ARRAY_SIZE 1111

int main()
{
   
    int n;
    float a;
    int count;
    float res[ARRAY_SIZE] = {
   0.0f};
    int K = 0; //记录最终数组的个数

    scanf("%d", &count);
    for(int i=0;i<count;i++){
   
        scanf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值