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

  • 相关阅读:
    (办公)记事本_Linux常用的文件操作命令
    (办公)记事本_Linux的In命令
    Python、Django、Celery中文文档分享
    Python循环引用的解决方案
    Django中非视图函数获取用户对象
    在Django中使用Sentry(Python 3.6.8 + Django 1.11.20 + sentry-sdk 0.13.5)
    CentOS7安装配置redis
    CentOS7配置ftp
    CentOS7安装docker和docker-compose
    CentOS7安装postgreSQL11
  • 原文地址:https://www.cnblogs.com/magnesium/p/5175799.html
Copyright © 2011-2022 走看看