给数字添加千分位分隔符

给数字添加千分位分隔符

本文转自:天涯未远处(linhai_qq)
法一:

int i=0,j=0;
void recombination(char a[],long long n)
{
i++;
if(i%4!=0) a[j]=n%10+'0';
else {a[j]=',';a[++j]=n%10+'0';i++;}
if(n/10!=0)
{j++;recombination(a,n/10);}
}
#include<stdio.h>
int main()
{long long k,n;
char a[100];
scanf("%lld",&n);
if(n<0)
{
printf("-");
n=-1*n;
}
recombination(a,n);
for(k=j;k>=0;k--)
printf("%c",a[k]);
return 0;
}

注意:此程序可在educoder中实现。但是程序中long long 结构不适用于VC++版本类的编译器;若要在VC++版本中使用,则需要将long long 用__int64(或者unsigned__int64)表示,格式符将%lld(%llu)改为%l64d(或者%l64u)即可。
法二:利用字符数组,此法在educoder上无法实现,但在软件编译器中可以实现。

#include<stdio.h>
#include<string.h>
int main()
{char a[100],c; 
int i=0,j=0,m;
while((c=getchar())!='\n')
{
 a[i]=c;
 ++i;
m=i;
} 
while(j!=m)
{ putchar(a[j]);
if(j!=m-1)
{
if(m%3==0&&(j+1)%3==0)putchar(','); 
else if(m%3==1&&(j+3)%3==0)putchar(',');
else if(m%3==2&&(j+2)%3==0)putchar(',');
}
 j++; 
}
return 0;}
  • 0
    点赞
  • 0
    评论
  • 4
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

天涯未远处

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值