PAT甲级题库1001. A+B Format 某个测试点出错

Leopold_ 2017-05-04 05:02:29
程序如下
有一个测试点没有通过,20分的题目得了19分,请各位大神帮忙看一下这段代码的问题

题目:
引用
1001. A+B Format (20)

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


#include <stdio.h>
#include <math.h>
int main(){
int a,b,sum,c;
sum = 0;

scanf("%d %d",&a,&b);
sum = a+b;

if(sum < 1000 && sum > -1000)
printf("%d",sum);
else if(sum < 1000000 && sum > -1000000)
printf("%d,%03d",sum/1000,abs(sum%1000));
else{
c = sum%1000000;
printf("%d,%03d,%03d",sum/1000000,abs(c/1000000),abs(c%1000));
}

return 0;
}
...全文
518 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
蕾姆的小迷弟 2019-12-21
  • 打赏
  • 举报
回复
a , b = input().split(' ') s = int(a) + int(b) if s < 0: s1=str(-s) print('-',end='') else: s1=str(s) for i in range(1,len(s1) + 1): print(s1[i-1] ,',' if i%3==len(s1)%3 and i!=len(s1) else '', sep='', end='') #9行搞定
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstdio>
#include <cstdlib>

using namespace std;

int main()
{
int a, b, sum, c;
sum = 0;

scanf("%d %d", &a,&b);
sum = a + b;

if(sum < 1000 && sum > -1000)
printf("%d\n",sum);
else if(sum < 1000000 && sum > -1000000)
printf("%d,%03d\n", sum/1000, abs(sum % 1000));
else {
c = sum % 1000000;
printf("%d,%03d,%03d\n", sum / 1000000, abs(c/1000), abs(c%1000));
}

return 0;
}
20分代码
季夏未央 2018-09-16
  • 打赏
  • 举报
回复
第十六行 printf("%d,%03d,%03d",sum/1000000,abs(c/1000000),abs(c%1000));可能有点问题

999999+9999999=1,999,998
季夏未央 2018-09-16
  • 打赏
  • 举报
回复
同楼主,我是第十个测试点一直错
自信男孩 2017-05-04
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b, sum, c;
    sum = 0;

    scanf("%d %d", &a,&b);
    sum = a + b;

    if(sum < 1000 && sum > -1000)
        printf("%d\n",sum);
    else if(sum < 1000000 && sum > -1000000)
        printf("%d, %03d\n", sum/1000, abs(sum % 1000));
    else {
        c = sum % 1000000;
        printf("%d, %03d, %03d\n", sum / 1000000, abs(c/1000000), abs(c%1000));
    }

    return 0;
}
abs头文件是stdlib.h,不是math.h吧 我是在Linux下测试的

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧