zoukankan      html  css  js  c++  java
  • 面向对象程序设计 ——第二次作业(1)

    A+B Format

    解题的思路过程

    由于题目的输出加入了逗号的要求,所以所写程序的重点就是对运算的结果进行判断并修改成符合题目要求再进行输出。因为规范输出是每三个数字就有一个逗号,并且根据最多只会出现两个逗号,所以对输出结果进行判断,并且每三位分成一组。

    第一次的程序

    #include <stdio.h>
    int main()
    {
      int a,b,c,x1,x2,x3;
      scanf("%d%d",&a,&b);
      c=a+b;
      while(c<0)
      {
        printf("-");
        c=c*(-1);
      }
      if(c<1000) 
      {
        printf("%d",c);
      }
      else if(c<1000000&&c>=1000)
      {
        x1=c/1000;
        x2=c-x1*1000;
        printf("%d,%d",x1,x2);
      }
      else if(c>=1000000)
      {
        x1=c/1000000;
        x2=(c-x1*1000000)/1000;
        x3=(c-x1*1000000-x2*1000);
        printf("%d,%d,%d",x1,x2,x3);
      }
      return 0; 
    } 
    

    但由于只是单纯的3个数字3个数字分开,没有考虑到单组出现全是0的情况,例如:输入1000 1000 要求输出结果为2,000 ,但会出现2,0 的结果所以大部分测试点都出现了错误.重新考虑后将应输出的部分改为'%03d',最终得到了正确的结果。

    第二次的程序

    #include <stdio.h>
    int main()
    {
      int a,b,c,x1,x2,x3;
      scanf("%d%d",&a,&b);
      c=a+b;
      while(c<0)
      {
        printf("-");
        c=c*(-1);
      }
      if(c<1000) 
      {
        printf("%d",c);
      }
      else if(c<1000000&&c>=1000)
      {
        x1=c/1000;
        x2=c-x1*1000;
        printf("%d,%03d",x1,x2);
      }
      else if(c>=1000000)
      {
        x1=c/1000000;
        x2=(c-x1*1000000)/1000;
        x3=(c-x1*1000000-x2*1000);
        printf("%d,%03d,%03d",x1,x2,x3);
      }
      return 0; 
    } 
    

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

    总结

    做完后,看了一部分同学的博客,大家的误区都差不多。总的来说,题目难度不大,侧重点是放在解题的细心和对细节的考虑上,

    在学习使用markdown比较有帮助的两个网站

    Markdown简易入门
    Markdown在线转换器

  • 相关阅读:
    TI CC2541的整体目标
    TI CC2541的GPIO引脚设置.
    E2PROM与Flash的引脚图
    TI BLE CC2541的通讯协议.
    TI BLE CC2541的I2C主模式
    Charles如何抓取电脑上的请求的https数据包
    Charles如何抓取手机上的请求的https数据包
    谷歌浏览器chrome调试H5页面 如果添加cookie?
    Unity 好坑的Save Scene
    Unity 官网教程 -- Multiplayer Networking
  • 原文地址:https://www.cnblogs.com/magnesium/p/5175799.html
Copyright © 2011-2022 走看看