寒假作业二之代码题

编程题

github链接

用c语言完成以下题目

1001.A+B Format(20)

  • 注册该网站的账号
    1092854-20170201200632026-1668862186.png

  • 写一篇随笔描述

    • 解题的思路过程
      • 输出A+B的和并不难,关键在于每三位需要逗号,(当然小于三位的直接输出)所以只要用if语句判断某位是否是三的倍数,再在前面加上逗号即可。
      • 其次,要怎么一个一个数字输出并且在他们中插入逗号?
        • 我找到sprintf函数,将两个整数和变成字符串存在字符数组里面
        • 利用strlen函数计算字符数组长度count
        • 进行count次循环,每三位输出一个逗号,同时输出字符
    • 我的初始代码
      1092854-20170201194829104-385791254.png

    • 编程过程中调试与在线测试(提交代码)后的bug发现与修改过程

      • 第一次发现若刚好是三的倍数,会在首位前面多输出一个逗号,所以我多加了一个判断条件
        1092854-20170201195204933-1305921218.png

      • 第二次,测试了一下负数,发现编译器将“-”号当成一个字符,所以会出现这种情况
        1092854-20170201194151526-768773500.png
      • 所以我分成两种情况,一是和为正数,二是和为负数,正数的话直接处理,而负数我就把判断条件改了以下,直接跳过负号的位数判断,就是图中我画出来的部分,其他的大同小异1092854-20170202101102823-1182236929.png
        1092854-20170201195534511-1157437085.png
  • 在PAT上的提交列表记录
    • 第一次有测试点(9分的)给错了1092854-20170201195757401-745918528.png
    • 第二次1092854-20170201195921120-758038608.png

    • 大功告成,最终代码:

      
      #include<stdio.h>
      #include<string.h>
      #include<math.h>
      int main()
      {
        int a,b,sum,n,i=0,j=0,count;
        char  str[100];
        scanf("%d %d",&a,&b);
        sum=a+b;
        sprintf(str,"%d",sum);
        count=strlen(str);
        if(sum>=0)
      {
          if(count>3)
              for(i=count-1,j=0;i>=0,j<count;i--,j++)
              {
              if((i+1)%3==0&&j!=0) printf(",");
              printf("%c",str[j]);
              }
          else
          printf("%d",sum);    
      }
      else
      {
          if(count>4)
          for(i=count-1,j=0;i>=0,j<count;i--,j++)
          {
          if((i+1)%3==0&&j!=1) printf(",");
          printf("%c",str[j]);
          }
          else
          printf("%d",sum);   
      }
      
          return 0; 
       } 
      
  • 这次作业让我比较头疼的就是git和github的使用,因为全部是英文(看不懂啊),不过通过上网查找一些资料阅读博客还有同学给我的帮助,最终还是完成了。虽然不是很完美,不过相信接下来会变得更好!

  • MY PDF

转载于:https://www.cnblogs.com/luzeming/p/6360959.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值