• PAT甲级_PAT Advanced Level 1002. A+B for Polynomials (25) C


    1   题目要求:

         https://www.patest.cn/contests/pat-a-practise/1002

    2   源代码

    #include <stdio.h>
    #include <stdlib.h>
    //#include<string.h> 
    /* run this program using the console pauser or add your own getch, system("pause") or input loop 
       这本程序一定要好好看看,绝妙
     */
    int main() {
    /*语法点:定义数组,变量 */
        float a[1001];
        int i;
        int k;
        float temp;
    /*语法点:1 for循环 
              2 数组初始化          */
        for(i=0;i<=1000;i++){
            a[i]=0.0f;
        }
    /*语法点:1 输入语句scanf
              2 while循环  
              3 加法赋值语句*/
        scanf("%d",&k);
    /* i是数组下标,这里其实是多项式的指数。也就是之前开辟了空间为1001的数组,输入指数的时候,其实就是在1001的数组空间里找对应a[i],
       然后将该项的系数赋给a[i],这是这道程序的灵魂!这里一定要记下来。以后会经常用到这种方法!可以自己画画图理解一下。
    */
        while(k--){
            scanf("%d%f",&i,&temp);
            a[i]+=temp;
        }     
    //这里的k是多项式的项数,其实也就是多项式系数的个数,数组中非零元素的个数
        scanf("%d",&k);
        while(k--){
            scanf("%d%f",&i,&temp);
            a[i]+=temp;    
        }
    //判断多项式的项数,其实就是循环这个数组,不为0,就把k+1,就是多项式的个数,也就是第一个我们要打印的值
        k =0;
        for(i=0;i<=1000;i++){
            if(a[i]!=0.0){
                k++;
            }
        } 
         printf("%d",k);
    //项数为0则只输出k,且不带空格,k不为0,其实就是多项式为0的情况下,打印空格,准备下面的输出
         if(k!=0)
             printf(" ");
    /* 倒序循环a[i]这个数组,因为输出要求指数从大打小排列,所以倒序遍历数组,如果数组元素不为0,就输出数组下标与对应的数,就是指数和系数
       这样要注意输出方式!!!
       输出一对,我们就把k减1,如果k不为0,则输出空格,k=0,则表示其实已经遍历完了。继续下一论循环,直到把整个数组遍历完。   */
             for(i=1000;i>=0;i--){
                 if(a[i]!=0.0){
                     printf("%d ",i);
                     printf("%0.1f",a[i]);
                     k--;
                     if(k!=0)
                      printf(" ");
                 }    
             }        
         return 0;
        }

    3  评测结果

        

  • 相关阅读:
    Nginx服务器环境搭建
    PostgreSQL常见问题处理方法
    Linux之awk使用
    PostgreSQL常用SQL
    用apache commons-pool2建立thrift连接池
    redis开发小结
    如何解决netty发送消息截断问题
    后端服务开发总结
    利用git reflog找回错误的重置
    TCP长链接调试利器nc
  • 原文地址:https://www.cnblogs.com/sunnybowen/p/8567432.html
Copyright © 2020-2023  润新知