1001.A+B Format (20)

github上的object-roiented链接 https://github.com/a877306134/object-oriented/tree/master/1001.A%2BB

思路过程

我是这样想的:先总和判断所输入的的数的正负,标记后再把这个数绝对值化;然后判断位数,确定这串数字需要几个逗号,比如如果是3位数,不需要逗号,6位数只需要一个逗号:接下就是一个循环,让这个数与1000求余数,余数放在一个数组里,然后让这个数扣掉余数再除以1000;最后输出是先判断正负,然后让这个数组倒序输出,不过要注意除了第一个,其他数都要以3位整数的方式输出。

下面这个是有瑕疵的代码

#include<stdio.h>
#include<math.h>
int main()
{
long a,b;
int c[8],s=1,i,j;
scanf("%ld %ld",&a,&b);
a+=b;
if(a<0) s=0;
a=abs(a);
for(i=1;a>pow(10,i);i++);
if(i<=3)i=1;
else if(i<=6)i=2;
else if(i>=7)i=3;
for(j=0;j<i;j++)
{
c[j]=a%1000;
a=(a-c[j])/1000;
}
for(j=i-1;j>-1;j--)
{
if(s==0)
{
s=1;
printf("-");
}
if(j==i-1)printf("%d",c[j]);
else printf("%03d",c[j]);
if((i-j)!=i)
printf(",");
}
return 0;
}

结果是

错了一个,我另外测试了好几组数据,都没有错,不知道自己错在哪里。就在我不知道如何做的时,我灵机一动,测试一组数据,999+1,输出结果是

本来应该是1,000 但是却变成0.我于是在测试位数那里加上一条printf,输出位数,再用999+1测试,测试完发现输出位数是3位,于是我就发现在判断位数那个循环上有问题,果不其然,循环中间烧掉了一个“=”号,我加上去后再用999+1测试就可以了。最后提交的代码是

#include<stdio.h>
#include<math.h>
int main()
{
long a,b;
int c[8],s=1,i,j;
scanf("%ld %ld",&a,&b);
a+=b;
if(a<0) s=0;
a=abs(a);
for(i=1;a>=pow(10,i);i++);
if(i<=3)i=1;
else if(i<=6)i=2;
else if(i>=7)i=3;
for(j=0;j<i;j++)
{
c[j]=a%1000;
a=(a-c[j])/1000;
}
for(j=i-1;j>-1;j--)
{
if(s==0)
{
s=1;
printf("-");
}
if(j==i-1)printf("%d",c[j]);
else printf("%03d",c[j]);
if((i-j)!=i)
printf(",");
}
return 0;
}

在OJ上的结果是

A+B Format的更多相关文章

  1. Spring resource bundle多语言,单引号format异常

    Spring resource bundle多语言,单引号format异常 前言 十一假期被通知出现大bug,然后发现是多语言翻译问题.法语中有很多单引号,单引号在format的时候出现无法匹配问题. ...

  2. c# 字符串连接使用“+”和string.format格式化两种方式

    参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...

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

    题目原文: Calculate a + b and output the sum in standard format -- that is, the digits must be separated ...

  4. Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ...

    Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ... 这个错误是因为有两个相 ...

  5. 【转】string.Format对C#字符串格式化

    转自:http://blog.csdn.net/samsone/article/details/7556781 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) str ...

  6. VBA 格式化字符串 - Format大全

    VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...

  7. [Erlang 0111] Erlang Abstract Format , Part 2

       上回书,我们说到飞天玉虎蒋伯芳来到蜈蚣岭,不是,重来,上回咱们说到可以在Erlang Shell里面手工构造,加载并调用一个模块.在那个demo里面,我把多个Form单独生成出来,最后放在一起做 ...

  8. [Erlang 0110] Erlang Abstract Format , Part 1

    Erlang Abstract Format并不难懂,只是枯燥一点罢了,如果把Abstract Format的文档翻译出来,其实就是Erlang教科书中语法入门的部分. Erlang Abstract ...

  9. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  10. Python中用format函数格式化字符串

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 语法:%[( ...

随机推荐

  1. mybatis 详解(六)------通过mapper接口加载映射文件

    通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合是非常重要的.那么什么是通过 mapper 接口加载映射文件呢? 我们首先看以前的做法,在全局配置文件 mybatis-conf ...

  2. 最短路和次短路问题,dijkstra算法

    /*  *题目大意:  *在一个有向图中,求从s到t两个点之间的最短路和比最短路长1的次短路的条数之和;  *  *算法思想:  *用A*求第K短路,目测会超时,直接在dijkstra算法上求次短路; ...

  3. iPhone 尺寸

    http://tool.lanrentuku.com/guifan/ui.html 这是本人复制的链接,,

  4. ubuntu 15.10 安装jdk

    转http://www.bkjia.com/xtzh/881605.html 第一步,下载Linux版JDK 可以通过访问Oracle官网下载,或者直接通过命令行下载. lxh@ubuntu:~$ w ...

  5. vbs系统监控

    vbs CPU 内存 硬盘监控脚本 On Error Resume Next Dim dwTotalMem, dwAvailMem, totalvolumn, freespace Const szRo ...

  6. C/C++ 知识点---sizeof使用规则及陷阱分析(网摘)

    C/C++ 知识点---sizeof使用规则及陷阱分析 原文出处:[胖奇的专栏] 1.什么是sizeof 首先看一下sizeof在msdn上的定义:     The sizeof keyword gi ...

  7. Windows MDI(Multiple-Document Interface)

    Windows多文档窗口编程中,需要注意的以下几点: 1.主窗口与文档窗口之间还有一个Client Window. 2.创建文档窗口.通常认为创建子窗口就用CreateWindow,但是MDI中创建文 ...

  8. 复杂DIV交错布局

    问题: 请写一段html和CSS实现图中布局: 解析: 考察实现此种效果布局的几种方式. --- 答案:TBD

  9. 同形异义字:看我如何拿到TaoBao.com的解析权

    *本文原创作者:expsky@MS509Team,本文属FreeBuf原创奖励计划 同形异义字钓鱼攻击号称"几乎无法检测",是最狡猾的钓鱼攻击!这种攻击产生的原因是国际化域名IDN ...

  10. redi安装

    借鉴文章:https://segmentfault.com/a/1190000010709337 在linux中使用wget时,若报-bash: wget: command not found,则表明 ...