在一行中输入一个整数
![]()
。
输出一个字符串,表示将
转换为千分位格式后的结果。
请不要输出多余的空格或换行。
980364535
980,364,535
6
6
#include <stdio.h>
#include <string.h>
int main()
{
char n[1000000]={0};//初始化,全为0
scanf("%s",n);
for(int i=0;i<strlen(n);i++)//strlen函数是在<string.h>下的一个计算字符串长度的函数
{
printf("%c",n[i]);
if((strlen(n)-(i+1))%3==0 && (i+1) != strlen(n))//相当于i从1开始每三个,小于n
{
printf(",");
}
}
return 0;
} #include<stdio.h>
#include<string.h>
int main()
{
int n = 0;
int i = 0;
int j = 0;
int k = 0;
char ch[20];
scanf("%d",&n);
while(1)
{
ch[i]= n % 10 +'0'; //拿下末尾放到字符串中
i++;
j++;
n = n/10;
if(n==0) //如果没有字符可放了,跳出循环,防止没有数字还加逗号
break;
if(j==3) //累计三个加一个逗号
{
ch[i]=',';
i++;
j=0;
}
}
for(k=i-1;k>=0;k--) //倒序打印字符串
{
printf("%c",ch[k]);
}
return 0;
} #include <stdio.h>
int main() {
char shu[100]={};int n=0;
//将需要的数以字符串的形式存入数组,并获得最后一位元素的下标
while (scanf("%c",&shu[n])!=EOF) {
n++;
}
n-=2;
//每输出三个元素就输出一个逗号,在位数能被三整除的情况下循环 数位/3-1次 后输出最后三个元素
//位数不能被三整除的情况下 先输出 位数%3次 后再进入输出三次就输出一个逗号的循环
int ci=1;//输出次数
int di=0;//供循环时数组下标递增使用
if ((n+1)%3==0)
{
for (int x=1; x<=(n+1)/3-1; x++) {
for (int y=1; y<=3; y++) {
printf("%c",shu[di]);
di++;
if (ci%3==0) {
printf(",");
}
ci++;
}
}
for (int j=0; j<3; j++) {
printf("%c",shu[di]);
di++;
}
}
else
{
for (int j=0; j<(n+1)%3; j++) {
printf("%c",shu[di]);
di++;
}
//位数小于三则不输出逗号
if (n+1>3) {
printf(",");
}
for (int x=1; x<=(n+1)/3; x++) {
for (int y=1; y<=3; y++) {
printf("%c",shu[di]);
di++;
//判断是否到了循环的尾声,是则不再输出逗号
if ((n+1)/3>1) {
if (x==(n+1)/3) {
}
else {
if (ci%3==0) {
printf(",");
}
}
}
ci++;
}
}
}
return 0;
} #include <stdio.h>
#include <string.h>
void translate_num(int n, char ret[]){
char temp[20];
//整数转换字符串函数sprintf
sprintf(temp, "%d", n);
int len = strlen(temp);
int i = 0, j = 0, k = 0;
//从后往前,每三个字符,加一个‘,’
for (i = len - 1; i >= 0; i--,j++) {
if (j > 0 && j%3 == 0){
ret[k++] = ',';
}
ret[k++] = temp[i];
}
ret[k] = '\0';
//将添加完逗号的字符串反转
for (i = 0, j = k-1; i < j; i++, j--) {
char tmp = ret[i];
ret[i] = ret[j];
ret[j] = tmp;
}
}
int main() {
int n = 0;
scanf("%d",&n);
char ret[100];
translate_num(n, ret);
printf("%s",ret);
return 0;
}
//
// Created by Wilbur Lee on 7/7/2024.
//
int main() { int n; char str[20];//用来逆序存放最终输出的数字n和字符',' int i = 0;//作为str字符数组的下标 int count = 0;//用来计数 scanf("%d", &n); while (n)//结束条件 { if (count == 3)//count每到3就放一个逗号字符到字符数组里 { str[i] = ','; count = 0;//count重新开始计数 goto qu; } int num= n % 10; sprintf(&str[i], "%d", num);//sprintf是格式转换函数,把数字转换成对应的字符 n /= 10; count++; qu: i++;//每放进去一个字符,下标就++一下 } for (int j = i - 1; j >= 0; j--)//逆序打印出字符数组即可 { printf("%c", str[j]); } return 0; }
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[11] = { 0 };
char arr2[15] = { 0 };
char* p = arr2;
gets(arr1);
int len = strlen(arr1);
if (len <= 3)
{
strncpy(arr2, arr1, 3);
printf("%s\n", arr2);
}
else if (len > 3 && len <= 6)
{
int i = 0;
int j = 0;
for (i = 0; i < 1; i++)
{
strncpy(arr2 + 15 - 3, arr1 + len - 3, 3);
arr2[15 - 4] = ',';
j += 3;
}
while (*p != ',')
{
p++;
}
strncpy(p-len+3, arr1, len-3);
printf("%s\n", p - len + 3);
}
else if (len > 6)
{
int i = 0;
int j = 0;
for (i = 0; i < 2; i++)
{
if (i == 0)//153920529
{
strncpy(arr2 + 15 - 3-1, arr1 + len - 3, 3);
}
else if (i > 0)
{
strncpy(arr2 + 15 - 3 - 1-1 - j, arr1 + len - 3 - j, 3);
}
arr2[15 - 4 -1- 4 * i] = ',';
j += 3;
}
p = arr2;
while (*p != ',')
{
p++;
}
strncpy(p - len + 6, arr1, len-6);
printf("%s\n", p - len + 6);
}
return 0;
} #include <stdio.h>
void recursion(int num, int *p, int base){
if(num){
recursion(num / base, p, base);
if(num < base){
printf("%d",num % base);
} else {
printf("%03d",num % base);
}
if(num < *p){
printf(",");
}
}
}
int main() {
int num, base = 1000;
scanf("%d",&num);
recursion(num, &num, base);
return 0;
} #include <stdio.h>
int count(int x)
{
int i=0;
while(x)
{
x/=10;
i++;
}
return i;
}
int main() {
long long int n;
scanf("%lld\n",&n);
int a[30],x=n;
for(int i=0;x;i++)
{
a[i]=x%10;
x/=10;
}
for(int i=count(n)-1;i>=0;i--)
{
printf("%d",a[i]);
if(i%3==0&&i!=0)
printf(",");
}
printf("\n");
return 0;
} #include <stdio.h>
#include <string.h>
int main() {
char n[20];
while (scanf("%s", n) != EOF) {
int m = strlen(n);
int count = m % 3;
int j = m /3;
if(count == 0)
{
j--;
}
for(int i = 0; i < m; i++)
{
printf("%c",n[i]);
if((i+1) % 3 == count && j--)
{
printf(",");
}
}
}
return 0;
}