任务描述
本关需要你完成在数字中插入千分位分隔符的小程序。
相关知识
什么是千分位分隔符呢?千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。
编程要求
在输入的数字中插入千分位分隔符并将其输出。
效果如下:
输入:1234567
输出:1,234,567
可以用字符串写,也可以直接常规写
第一种是常规写法:
#include <stdio.h>
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
long i=1,n,p,q,t,m;
scanf("%ld",&n);
t = n;//copy一个副本
while ((n / 10) != 0){
n = n / 10;
i++;
}//到这 n不存在了
i = i - 1;
p = 1;
for (q = 1; q <= i; q++){
p = p * 10;
}
while (i >= 0){
m = t / p;
t = t - m*p;
printf("%d", m);
p = p / 10;
if (i % 3 == 0 && i != 0){
printf(",");
}
i = i - 1;
}
return 0;
/********** End **********/
}
下面是字符串写法:
#include <stdio.h>
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
char str[20];
int len,i;
gets(str);
len=strlen(str)%3;
for(i=0;str[i]!='\0';i++)
{
printf("%c",str[i]);
if((i+1)%3==len && str[i+1]!='\0')
printf("%c",44);
}
return 0;
/********** End **********/
}