PAT 甲级 1001 A+B Format (20)

题目:

思路:

要输出a+b的和。我的理解是这个和有三种情况,大于0,等于0,小于0。然后如果等于0,直接输出0。否则就要先判断是否是小数,如果是,先标记(用bool来标记是小数),然后把和变成其绝对值进行计算,求出其每一位分别放入一个数组中,与此同时,数组中每三位数字之间加一个逗号。最后输出结果。

参考代码:

#include <cstdio>
int main(){
long int a , b;
char sums[10];
int sum,i = 0,j = 0;
bool tab = false;
scanf("%d %d",&a,&b);
sum = a + b;
if(sum == 0)
  printf("0");
if(sum<0)
{
    tab = true;
    sum = -sum;
}
while(sum!=0)
{
  sums[i++] = (sum % 10) + '0';
  sum /= 10;
  j++;
  if(j%3 == 0&&sum>0)
  {
    sums[i++] = ',';
  }
}
if(tab)
{
  printf("-");
}
while(i>0)
{
  printf("%c",sums[--i]);
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/zz744670705/article/details/81348647
今日推荐