标签:输出 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;
}
标签:输出 bit false ++ 需要 pre 不能 amp scanf
原文地址:https://www.cnblogs.com/Hiraeth-dh/p/10886925.html