代码文件及题目描写已放至此

一开始看题目的时候有点没看懂,要求把数分组是什么意思。如果只是单纯的a+b的话是不可能的,所以关于这一点犹豫了很久。本来以为是指把a,b,以及它们的和c各建一个数组,但只输入一次的话,建数组根本没意义。后来才终反应过来,是指每三位用逗号隔开。

于是就先尝试将a和b相加后的值,取除1000后的余数,依次存入一个数组中,然后再按顺序输出。

输入1000000和9,跳出来的是“9,1,0,9”。看起来非常的有问题。

把原先的“%d”改为“%03d”后,输出变成“009,001,000,009”了。从结果来看应该是多循环了一次。

于是就改了改循环,修改后显示的是“001,000,009”。

要把第一组的0去掉,于是重新讨论分类。

终于正常了,现在是“1,000,009”。

但是突然发现自己忘记考虑负数了。

尝试带入-1000000和-9,得出的是“-1,000,-09”。看来除了第一部分,其余都不用保留符号。

再在原代码上改下去的话会越来越复杂,就决定重新开始。

这次把-1000~1000之间的数先单独提出来,这是可以直接输出的。

因为除了第一部分其他都不需要符号,所以引入abs函数。

意识到数字范围在-1000000~1000000之间,也就是说最多不超过三组,既然之前的数组用起来太费劲,那这次就直接按大小分好了。

一共分成了绝对值小于1000,小于1000000,大于1000000三组。

因为最多也只有两个逗号,所以直接用i,j,r来代表三块的数字。

输入-1000000和-9,这回是“-1,000,009”了。

又输入32和-32,得出“0”。

输入-10000和81,得出“-9,919”。

似乎没有问题了,去提交代码。

但是代码提交后,却显示返回非零。非常困扰。

原来是编译器选错了。

改成C后提交就好啦。

这是代码。

提交列表。

因为学长提出了把abs放在前面,所以也就做了尝试。但究竟是否有提高代码效率没有看出来……这该怎么看呢?

当初没有把abs放在前面是因为想当然的觉得如果先设了绝对值,后面每次输出时就都得重新讨论正负。但这次想了想后,觉得既然已经用了直接分三类讨论这种偏投机取巧的方法,那不妨更干脆点,直接在开头就判断正负,如果是负数,就直接先输出一个负号。

原先的代码是很久以前打的了,导致当时随手设的变量名现在看得晕乎乎的,所以这次是重新编了一遍。设置变量名时,三块内容分别用st,nd,rd表示,感觉清楚多了。中途又出现了“%d"中没有加03的错误,还出现了输出时加了&的低级错误,真是很不应该。

编完后又拿去测了测,通过了。

以下是代码。

#include<stdio.h>
#include<math.h> int main()
{
int a,b,c,d;
int st,nd,rd;
scanf("%d %d",&a,&b);
c=a+b;
d=abs(c);
if(c<0) printf("-");
if(d<1000) printf("%d",d);
else if(d<1000000)
{
st=d%1000;
nd=d/1000;
printf("%d,%03d",nd,st);
}
else
{
st=d%1000;
d=d/1000;
nd=d%1000;
rd=d/1000;
printf("%d,%03d,%03d",rd,nd,st);
}
return 0;
}

以下是提交列表。

第二次作业(1001.A+B Format (20))的更多相关文章

  1. 1001.A+B Format (20)代码自查(补足版)

    1001.A+B Format (20)代码自查(补足版) 谢谢畅畅酱的提醒,发现了代码中的不足,把变量名更改成更合理的名字,并且把注释也换成英文啦! 栋哥提供的代码自查的方式也帮助了我发现很多代码中 ...

  2. PAT 甲级 1001 A+B Format (20)(20 分)

    1001 A+B Format (20)(20 分) Calculate a + b and output the sum in standard format -- that is, the dig ...

  3. PAT 甲级1001 A+B Format (20)(C++ -思路)

    1001 A+B Format (20)(20 分) Calculate a + b and output the sum in standard format -- that is, the dig ...

  4. PAT甲 1001. A+B Format (20) 2016-09-09 22:47 25人阅读 评论(0) 收藏

    1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Calculate ...

  5. 关于‘1001.A+B Format (20)’的解题报告

    1001.A+B Format(20) 首先要感谢一下指导我github上传问题的小伙伴们,捣腾了一整天我终于摸到了一点门路,真的谢谢你们. 小豪的github 问题描述: Calculate a + ...

  6. "1001. A+B Format (20)" 解题报告

    Github : git@github.com:Circlecos/object-oriented.git PDF Of Markdown : "1001. A+B Format (20)& ...

  7. 【PAT】1001. A+B Format (20)

    1001. A+B Format (20) Calculate a + b and output the sum in standard format -- that is, the digits m ...

  8. PAT-PAT (Advanced Level) Practise 1001. A+B Format (20) 【二星级】

    题目链接:http://www.patest.cn/contests/pat-a-practise/1001 题面: 1001. A+B Format (20) Calculate a + b and ...

  9. 1001. A+B Format (20) (%0nd)

    1001. A+B Format (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Calculate ...

  10. PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1001 A+B Format (20 分) 凌宸1642 题目描述: Calculate a+b and output the sum i ...

随机推荐

  1. js滚动监听

    下边代码,是监听滚动条只要移动,下方的返回顶部的div显示与隐藏的代码 ? 1 2 3 4 5 6 7 8 window.onscroll = function () {  var t = docum ...

  2. H5混合开发进阶之inspect调试

    h5界面嵌套在原生app内部的时候,需要调用原生的方法,传递数据.中间难以调试代码,. 用google的 inspect调试.查看数据的传输方式. 1.adb连接正常,打开手机USB调试 2.第一次使 ...

  3. animation(动画)设置

    1.animation 动画 概念:当您在 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果. 通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器: 规定 ...

  4. 第7天 Java基础语法

    第7天 Java基础语法 今日内容介绍 循环练习 数组方法练习 循环练习 编写程序求 1+3+5+7+……+99 的和值. 题目分析: 通过观察发现,本题目要实现的奇数(范围1-100之间)的累加和. ...

  5. BIOS简单讲解

    学习链接: http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/courseware/1d95cdf6f0e9434488 ...

  6. java 用户修改密码

    import java.util.Scanner; class Member { private String mima; private String name; public String get ...

  7. 简单复习一下ArrayList的扩容原理

    刚刚跟几个好朋友喝完小酒回家,简单大概复习一下ArrayList的扩容原理,由于头有点小晕,就只大概说一下扩容的原理哈: 首先ArrayList实现了List接口,继承了AbstractList,大家 ...

  8. 【转】PG数据库高级用法 之 12306 -- 链接

    这么牛的文章很少见,仅附链接,以示敬仰. https://github.com/digoal/blog/blob/master/201611/20161124_02.md

  9. 数据库 MySQL part3

    外键约束 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表. 外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操 ...

  10. Java设计模式(11)——结构型模式之享元模式(Flyweight)

    一.概述 概念 避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). UML简图 单纯享元模式 角色 抽象享元角色(Flyweight):定义享元子类公共接口 具体享元角色(Co ...