zoukankan      html  css  js  c++  java
  • A+B Format

    1001. A+B Format (20)

    https://github.com/leijing000/object-oriented

    一、解题的思路过程:

    首先我写出两个数求和的代码,接着我试着测试出这个和的长度,即这个数总共有几个数字,好用于后面的分组,于是我采用了数组,并采用取余取整的循环,每循环一次所定义的j变量(j的初始值为0)就加一,直到最后余数为零时所得到的j-1便是和的长度,并把每次取得的余数赋值给c[j],这样就得到一个含这个和的每个数字的数组,然后我试图将它分成三个一组,于是我找到每个逗号前的数字所对应的j的序号,发现那个j是可以被3整除的,于是我在j%3的余数为0的地方接着输入一个逗号,这样便实现了三个一组的输出,输出数字和逗号我想通过循环来实现的,并且是倒序输出。

    二、编码过程中调试与上线测试(提交代码)后的bug发现与修改过程:

    一开始我以为仅是简单的a+b,于是便写了一个只有五六行的算加法的代码,提交上去后发现是错的,于是我认真看了题目,题目不仅仅是要我们算两个数的和,还要将结果按三个一组并用逗号隔开输出,于是我便思考着如何把这个数分组,并把逗号塞在中间,于是我写出了这样一段代码:

    #include<stdio.h>
    int main()
    {
        int a,b,sum,d=0,j=0;
        int c[10000]={0};
        scanf("%d%d",&a,&b);
        sum=a+b;
        while(sum>0)
    	    {
    	    c[j]=sum%10;
    	    sum=sum/10;
    	    j++;
    	    d++;
        }
        for(j=d;j>=0;j--)
    	    {
    		    printf("%d",c[j]);
    	    if(j%3==0)
    		    printf(",");
        }
        return 0;
    

    当我输入负数测试时它的输出是不对的,因此我觉得负数是需要单独讨论的,而且当我输出正数时虽然输出是有逗号的,但是在最末尾也有一个逗号,这就说明我在判断逗号的时候条件不够充足,使得最后一个逗号也输出了。

    于是我开始第二次尝试,我分了和小于0和和大于等于0两种情况讨论,并思考为什么最后面会有逗号,我发现当j为0时除3也为0(即输出最后一个数时会出现逗号的原因),所以我增加了一个j不等于0的条件。

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int a,b,sum,d=0,j=0,n;
        int c[10000]={0};
        scanf("%d%d",&a,&b);
        sum=a+b;
        n=abs(sum);
        while(n>0)
        {
    	    c[j]=n%10;
    	    n=n/10;
    	    j++;
    	    d++;
        }
        if(sum>=0)
        {
        for(j=d;j>=0;j--)
    	    {
    		    printf("%d",c[j]);
    	    if(j%3==0&&j!=0)
    		    printf(",");
        }
        }
        else
        {
    	    printf("-");
    	    for(j=d;j>=0;j--)
    	    {
    		    printf("%d",c[j]);
    	    if(j%3==0&&j!=0)
    		    printf(",");
        }
        }
        return 0;
    }
    

    修改后的输出还是有问题,我发现输出的和的前面多了一个0,若我的数组没有初始化为0的话,则会多出一堆的随机数,因此我感觉是我的范围出错了,使得输出多了一个数,于是我将j从d开始改成d-1,这样输出就正确了。

    再次提交后发现还是有问题,我尝试了好几次发现输出都是正确的,不管是正的还是负的。后来仔细想想,我没有测试过和为0的情况。于是我试着输出和为0的情况,发现当和为0时是没有输出的,所以我便又把和为0单独的考虑了,经过多次修改终于全对了。

    三、在PAT上的提交记录列表截图

  • 相关阅读:
    微信小程序中从后台获取的数组,然后需要改变数组其中一个属性值,然后setData
    vue 项目中监听 localStorage 或 sessionStorage 的变化
    微信小程序怎么区分线上和测试环境
    vue中使用SVG图标,并且想批量导入,然后需要使用的时候直接添加就可以
    微信小程序中引用VantUI组件
    解决webStorm打开vue项目时加载文件卡死的问题
    关于ES6中的Proxy
    Object.defineProperty()详解
    openCV模块应用之解析传输的图片
    [Java EE]缓存技术初探
  • 原文地址:https://www.cnblogs.com/leijing/p/5167860.html
Copyright © 2011-2022 走看看