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在线转换器

  • 相关阅读:
    关于使用_bstr_t的一个坑
    ubuntu下使用sublime text进行C编程开发尝鲜
    [转]在ubuntu下安装sublime text
    [转] COM编程总结
    [转]wcout输出中文却不显示出来
    理解抽象类与接口
    软件设计原则[总结]
    [转] 在图标库中,找到合适的图标 ico
    [转]单播、多播(组播)、广播简介
    NUC970开发资源
  • 原文地址:https://www.cnblogs.com/magnesium/p/5175799.html
Copyright © 2011-2022 走看看