码迷,mamicode.com
首页 > 其他好文 > 详细

PAT-A1001

时间:2019-05-18 20:27:31      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:输出   bit   false   ++   需要   pre   不能   amp   scanf   

A1001

A+B Problem?

计算a+b 每隔三位输出一个逗号

算出a+b 判断是否为负 然后分离每一位上面的数字 在输出每一个三的倍数之前输出一个逗号 同时注意该数字不能为第一数字

这样只会得到19分

为什么呢?

    while (c){
        cnt++;
        p[cnt]=c%10;
        c/=10;
    }
    if (!flag) printf("-");
    for (int i=cnt;i>=1;i--){
        if (i%3==0&&i!=cnt) printf(",");
        printf("%d",p[i]);
    }

很明显这段代码对c=0的情况是不起任何作用的 所以需要特判一下0

#include<bits/stdc++.h>
using namespace std;
int p[200],a,b,c,cnt;
bool flag=true;
int main(){
    scanf("%d%d",&a,&b);
    c=a+b;
    if (c<0) flag=false;
    c=abs(c);
    while (c){
        cnt++;
        p[cnt]=c%10;
        c/=10;
    }
    if (!flag) printf("-");
    for (int i=cnt;i>=1;i--){
        if (i%3==0&&i!=cnt) printf(",");
        printf("%d",p[i]);
    }
    if (c==0) printf("0\n");
    return 0;
} 

PAT-A1001

标签:输出   bit   false   ++   需要   pre   不能   amp   scanf   

原文地址:https://www.cnblogs.com/Hiraeth-dh/p/10886925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!