zoukankan      html  css  js  c++  java
  • PAT:1002. A+B for Polynomials (25) 部分错误

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    //【warning】double 输入%lf,输出%f
    struct arr
    {
      int tag;
      double data;
    }arr[1005];
    
    int main()
    {
      memset(arr,0,sizeof(arr));
      int t1,t2,tmp,maxI=0;          //maxI记录最多多少项
      double tdata;
    
      for(int I=0 ; I<2 ; ++I)        //输入第一个和第二个多项式
      {
        scanf("%d",&t1);          //多项式有t1项
       /* if(t1>maxI)
          maxI=t1;*/
        for(int i=0 ; i<t1 ; ++i)      //输入多项式
        {
          scanf("%d",&tmp);
          arr[tmp].tag=1;          //修改过,设置为有效
          scanf("%lf",&tdata);
          arr[tmp].data+=tdata;      //加上这项前系数
          if(arr[tmp].data==0)      //正负抵消,没有此项了,设为无效
            arr[tmp].tag=0;
        }
      }
      int len=0;                //len记录多项式项数
      for(int i=0 ; i<=1000 ; ++i)
        if(arr[i].tag==1)
          ++len;
      printf("%d",len);
      if(len!=0)
      {
        int cnt=0;      //【caution】记录输出个数,控制空格数量,不一定是输出到指数为0才结束
      printf(" ");
        for(int i=1000 ; i>=0 ; --i)        //从后向前找tag为1的有效项
          if(arr[i].tag==1)
          {
            printf("%d %.1f",i,arr[i].data);
        ++cnt;
            if(cnt!=len)
              printf(" ");          //保证只有中间有空格
          }
      }
      printf("
    ");
      //system("pause");
      return 0;
    }
  • 相关阅读:
    2019.9.25 初级数据结构——树状数组
    2019.9.29 陪审团
    2019.9.27 硬币
    0070-星星阵
    0069-简单的回文数问题
    0068-简单的求和问题
    0067-水仙花数
    0066-若干个数求和问题
    0065-数方块
    0064-简单的平方和
  • 原文地址:https://www.cnblogs.com/Evence/p/4295538.html
Copyright © 2011-2022 走看看