PAT (Advanced Level) Practise —1001:A+B format

来源:互联网 发布:ios沙盒数据清理 编辑:程序博客网 时间:2024/05/07 09:44

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 <iostream>using namespace std;int main(){   //input two integers    long a, b, sum,len;    cin >> a >> b;    sum = a + b;    //when sum is negetive    if (sum < 0)    {        sum = -sum;        cout << "-";    }    //integer --> C string    char str[10];    len = sprintf(str, "%d", sum);    for (int i = 0; i < len; i++)    {        cout << str[i];        if (((len - 1 - i) % 3 == 0) && (len != i + 1))        {            cout << ",";        }    }    cin.get();    cin.get();    return 0;   }

get :
1. 整数转换为C风格字符串——sprintf

int sprintf ( char str, const char * format, … );*

其中,str是转换后用于储存Cstring的buffer,format是和printf类似的字符串格式,…是整数
整个函数返回的是Cstring的长度(不含null)

2.转换成C风格字符串之后要注意输出顺序(从高到低),以便判断何时添加逗号

0 0
原创粉丝点击