1001

#include<iostream>
using namespace std;
int main()
{
    int  a, b;
    int k;
    int n[10] = {-1};
    int i = 1;
    int flag = 0;
    int flag1 = 0;
    cin >> a >> b;
    int  c = a + b;
    k = c;
    if (c == 0)
        cout << c;
    if (c < 0)
    {
        flag1 = -1;
        c = -c;
        k = -k;
    }
    while (k>=1)
    {
        k = c/10;
        c = c%10;
        n[i++] = c;
        c = k;
        flag++;
    }
    if (flag1 == -1)
        cout << "-";
    for (int i = flag; i >=1; i--)
    {
        if (flag <= 3)
            cout << n[i];
        else{
            if (i % 3 == 0)
                cout << ",";
            cout << n[i];
        }

    }

}

反思:这道题不难,还是花了一些功夫。原因在于读题不清楚,想成了100,200,234这种,第二是因为逗号有些数据在开头就打出来逗号(判断有问题)

最后贴上柳诺大神的代码

#include <iostream>
#include<string>
using namespace std;
int main() {
    int a, b;
    cin >> a >> b;
    string s = to_string(a + b);
    int len = s.length();
    for (int i = 0; i < len; i++) {
        cout << s[i];
        if (s[i] == '-') continue;
        if ((i + 1) % 3 == len % 3 && i != len - 1) cout << ",";
    }
    return 0;

}

比较我能学习到

1:c++11函数

std::string to_string( int value ); (1) (C ++11起)
std::string to_string( long value ); (2) (C ++11起)
std::string to_string( long long value ); (3) (C ++11起)
std::string to_string( unsigned value ); (4) (C ++11起)
std::string to_string( unsigned long value ); (5) (C ++11起)
std::string to_string( unsigned long long value ); (6) (C ++11起)
std::string to_string( float value ); (7) (C ++11起)
std::string to_string( double value ); (8) (C ++11起)
std::string to_string( long double value ); (9) (C ++11起)

std::to_string是C++标准(2011年)的最新版本中引入的功能。旧的编译器可能不支持它。

1) 有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%d”, value)会产生足够大的buf.

扫描二维码关注公众号,回复: 1731989 查看本文章

2) 有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%ld”, value)会产生足够大的buf.

3) 有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%lld”, value)会产生足够大的buf.

4)std::sprintf(buf, "%u", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

5)std::sprintf(buf, "%lu", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

6)std::sprintf(buf, "%llu", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

6)std::sprintf(buf, "%llu", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.
@ 7,8 @std::sprintf(buf, "%f", value)会产生足够大的buf了同样内容的一个字符串转换成一个浮点值.

9) std::sprintf(buf, "%Lf", value)会产生足够大的buf了同样内容的一个字符串转换成一个浮点值.

参数

value - 一个数值转换

返回值

一个字符串保持转换后的值




猜你喜欢

转载自blog.csdn.net/luoshiyong123/article/details/80631990
今日推荐