PAT A1001 A+B Format (20 分)(c++以及c实现)

该博客介绍了PAT A1001题目的要求,即计算两个数的和并以每三位一组的格式输出。文章详细说明了输入和输出格式,并提供了C++和C语言的代码实现。作者提到题目主要关注的是输出格式的处理,并分享了初次尝试C++编程的经验。
摘要由CSDN通过智能技术生成

PAT A1001 A+B Format (20 分)(c++以及c实现)

原版问题描述

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).

输入格式:

Each input file contains one test case. Each case contains a pair of integers a and b where −10​6≤a,b≤106 . The numbers are separated by a space.

输出格式:

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.

输入实例:

-1000000 9

输出实例:

-999,991

思路

  • 题目的大概意思是,输入两个十万以内数字,进行加法处理,按照xxx,xxx,xxx的格式进行输出;(对就是这个样子!)
  • 这个题目不难,可能是对于英语读题的一个进阶吧,感觉。主要是针对他的格式来进行处理这一部分要注意;
  • 格式的输出可以使用穷举法,一共就三类。
  • PS:本人这是第一次使用c++编程,所以可能有些刻意使用一些函数,请见谅(就想这次的cout以及cin)。

具体代码

先是c++编程:

//c++编程
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    int c;
    c=a+b;
    if(c<0)
	    {
    		cout<<"-";
    		c=-c;
    	}
    a=(c%1000000)/1000;
    b=c%1000;
    c=c/1000000;
    if(c!=0)
   	 	{
   			cout<<c<<",";
    		cout<<setw(3)<<setfill('0')<<a<<","; 
    		cout<<setw(3)<<setfill('0')<<b<<"\n";
     }
    else if(a!=0)
    	{
    		cout<<a<<","; 
    		cout<<setw(3)<<setfill('0')<<b<<"\n";
    	 }
    else 
    	cout<<b<<"\n";
    return 0;
}

再是c语言编程

#include<stdio.h>
int main()
{
  int a, b, sum;
  scanf("%d %d", &a, &b);
  sum = a + b;
  if(sum < 0)
  {
    printf("-");
    sum = -sum;
  }
  if(sum >= 1000000)
  {    
    printf("%d,%03d,%03d", sum / 1000000, sum % 1000000 / 1000, sum % 1000);
  }
  else if(sum >= 1000)
  {   
    printf("%d,%03d", sum / 1000, sum % 1000);
  }
  else{                 
    printf("%d", sum);
  }
  return 0;
}

改进

c++写的十分粗糙,我想练习一下cout的输出格式,还有最开始是想要条件输出,最后失败了,要是有啥建议希望可以下面评论提一下呀!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值