作业记录:

问题描述与代码已上传github仓库object-oriented文件夹下

  • 题目一览

    Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).

    Input

    Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.

Output

For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.

Sample Input

-1000000 9

Sample Output

-999,991



本次题目是普通A+B Problem的改进版,要求输出三位一逗号形式的标准数字格式。

想到可用一个变量sum存放A+B的值,然后根据sum的长度分情况讨论。

本来在想要不要开个数组来存,但是观察到本题数字范围不大,最多只会出现两个逗号的情况。于是这题就可以简单明了的经判断语句分三种情况输出。虽然好几个elseif导致代码变长了长的丑点但是毕竟会可能导致的错误也少,反正是为了解决问题不是展示编程技巧的嗯。

然后在不同情况下用变量part1,2,3存放sum被逗号分开的数值分别输出。注意到sum的正负只要part1保留即可,于是对part2,3引入头文件math.h中的abs函数。

第一组测试数据:-1000000 9

输出:-999,991

第二组测试数据:-1000000 -9

输出:-1,0,9

立刻意识到把用逗号隔开的部分放不同变量输出的时候不能再用普通整型数值输出, 只要将part2,3输出时补上%03d即可。

第一组测试数据:-1000000 -9

输出:-1,000,009

第二组测试数据:-10000 1000

输出:-9,000

第三组测试数据:-10 10

输出:0

三种情况似乎都没什么问题,于是愉快地去提交了代码。第一次提交由于不熟悉PAT无意中提交成AWK……orz

第二次改成c就A了。

最终代码:

/*
三位一逗号的标准数字格式输出a+b
*/
#include<stdio.h>
#include<math.h>
int main()
{
freopen("xx.in","r",stdin);
freopen("xx.out","w",stdout);
int a,b;
scanf("%d%d",&a,&b);
int sum=a+b;
int part1,part2,part3;//逗号间隔开最多三部分 if((abs(sum))<1000)
printf("%d",sum);//无逗号 else if((abs(sum))<1000000) //一逗号
{
part2=sum%1000;
part1=sum/1000;
printf("%d,%03d",part1,abs(part2));
} else //两逗号
{
part3=sum%1000;
sum/=1000;
part2=sum%1000;
part1=sum/1000;
printf("%d,%03d,%03d",part1,abs(part2),abs(part3));
} return 0;
}

《面向对象程序设计》第二次作业(1)(A+B问题)的更多相关文章

  1. 面向对象程序设计 第二次作业<1>

    Github链接:https://github.com/zora02/object-oriented/tree/master/1001.A%2BB%20Format%20(20) 一.解题 题目 解题 ...

  2. 程序设计第二次作业<1>

    面向对象程序设计第二次作业<1> Github 链接:https://github.com/Wasdns/object-oriented 题目: <1>第一次尝试 我立马认识到 ...

  3. hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b

    hdoj上一道有意思的题目,题目: 人见人爱a+b 敲的也蛮快的,大概十分钟左右就AC了.代码如下: 人见人爱a+b #include<stdio.h> int main() { int ...

  4. C语言程序设计第二次作业--顺序结构

    C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include <stido ...

  5. THE LAST ONE!! 2017《面向对象程序设计》课程作业八

    THE LAST ONE!! 2017<面向对象程序设计>课程作业八 031602230 卢恺翔 GitHub传送门 题目描述 1.时间匆匆,本学期的博客作业就要结束了,是否有点不舍,是否 ...

  6. C语言程序设计第二次作业

    一.学习内容 掌握关系运算符.逻辑运算符.条件运算符 掌握常用数学函数的用法 if语句(单分支,双分支和多分支) 用switch语句实现多分支 理解多个if语句,if...else if... 和if ...

  7. C语言程序设计第二次作业——顺序结构

    (一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. 错误信息1: 错误原因:i和d位置错误 改正方法:i和d位置互换 错误信息2: 错误原因:\n后缺了一个" 改正方法:\n后加一个 ...

  8. 面向对象程序设计_课堂作业_01_Circle

    The 1st classwork of the C++ program 题目: Create a program that asks for the radius of a circle and p ...

  9. Java面向对象程序设计作业目录(作业笔记)

    持续更新中............. 我的大学笔记>>> 第1章 面向对象 >>> 1.1.5 编写Java程序,创建Dota游戏中的防御塔类,通过两个坐属性显示防 ...

  10. C语言程序设计第二次作业——

    1,编译过程过程中的错误缺引号和分号并且拼写错误. 正确结果: 2,编译过程 改正错误: 正确结果: 3,利用SIZEOF运算符求出的数据类型所占字节大小: 4,在头文件LIMITS.H中相关的编译 ...

随机推荐

  1. BZOJ 1415 聪聪和可可

    f[i][j]表示i点追j点的期望步数... 这题必须spfa不能bfs. 且复杂度不会炸(仅1000条边) #include<iostream> #include<cstdio&g ...

  2. foreach的指针问题

    从代码: $arr = array(,,,,); echo '$arr = array(1,2,3,4,5)','<br>'; foreach($arr as $key => &am ...

  3. win32 API 学习

    SendMessage 函数原型 LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam) 详情:百度百科     msd ...

  4. ORACLE RAC集群硬件资源管理与单节点的区别

    硬件资源是由OS kernel管理的,应用软件是不能直接访问硬件的,必须通过OS kernel提供的API接口间接访问,OS kernel 除了要完成用户的请求,还通过进程调度等机制来控制多进程对资源 ...

  5. 四:分布式事务一致性协议paxos通俗理解

    转载地址:http://www.lxway.com/4618606.htm 维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La" ...

  6. JSTL标签用法 详解

    在JSP的开发中,迭代是经常要使用到的操作.例如,逐行的显示查询的结果等.在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出.现在,通过JST ...

  7. jQuery 实现Bootstrap Chart 图表

    很多时候我们制作报表的时候需要图表,如果你使用bootstrap开发你的网站,如果你需要使用图表,那么最简单的方法就是就是使用bootstrap 的chart.js来实现图表,下面介绍方法 1.引入c ...

  8. C#中实现对Excel特定文本的搜索

    打开Excel的VBA帮助,查看Excel的对象模型,很容易找到完成这个功能需要的几个集合和对象: Application.Workbooks. Workbook.Worksheets还有Worksh ...

  9. Effective java笔记5--通用程序设计

    一.将局部变量的作用域最小化      本条目与前面(使类和成员的可访问能力最小化)本质上是类似的.将局部变量的作用域最小化,可以增加代码的可读性和可维护性,并降低出错的可能性. 使一个局部变量的作用 ...

  10. 性能测试指标&说明 [解释的灰常清楚哦!!]

    详见: 浅谈软件性能测试中关键指标的监控与分析 http://www.51testing.com/html/18/n-3549018.html