题解 | 添加逗号

添加逗号

https://www.nowcoder.com/practice/f51c317e745649c0900996fd3f683aed

#include <stdio.h>
#include<string.h>
char* reserve(char* arr,int len)
{
    int left = 0;
    int right = len - 1;
    while(left < right)
    {
        char tmp ;
        tmp = arr[left];
       arr[left] = arr[right];
       arr[right] = tmp;
       left++;
       right--;
    }
    return arr;
}
int main() {
   long long N;
    scanf("%lld",&N);
    char arr[20] = {0};
    long long tmp = N;
    int count = 0;
    int i = 0;
    while(tmp)
    {
            arr[i++] = tmp%10 +'0';//将数字转换位字符
            count++;
            if(count%3 == 0&&tmp/10!=0)
            {
                arr[i++] = ',';
            }
            tmp/=10;
            
    }
    if(i == 0)
    {
        arr[i++] = '0';
    }
    //此时数字顺序是反的,接下来逆序一下
    reserve(arr,i);
    printf("%s",arr);
    return 0;
}

这种情况应该是比较通用的了把,虽然比不上一楼的那样简洁【捂脸】

全部评论

相关推荐

八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
码农索隆:先背最基础的知识,然后理解情景题,现在面试大多数喜欢问情景题,更考验面试者的基础和临场发挥情况
点赞 评论 收藏
分享
积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务