在一行中输入一个整数
![]()
。
输出一个字符串,表示将
转换为千分位格式后的结果。
请不要输出多余的空格或换行。
980364535
980,364,535
6
6
#include <stdio.h>
#include <string.h>
int main() {
char c[10];
scanf ("%s", c);
int x = (strlen (c) % 3 == 0) ? 3 : strlen (c) % 3, i;
for (i = 0; i < strlen (c); i ++) {
printf ("%c", c[i]);
if (--x == 0 && i < strlen (c) - 1) {
printf (",");
x = 3;
}
}
return 0;
} //直接用利用库里的函数直接输出千分符号的太变态了 #include <stdio.h>
int main() {
int N;
if (scanf("%d", &N) != 1 || 1 > N || N > 1000000000) {
return 1;
}
char n1[4], n2[4], n3[4], n4[4];
if (N < 1000) {
printf("%d", N);
}
else if (N < 1000000) {
printf("%d,", N / 1000);
N %= 1000;
if (N > 99) {
printf("%d", N);
}
else if (N > 9) {
printf("0%d", N);
}
else {
printf("00%d", N);
}
}
else if (N < 1000000000) {
printf("%d,", N / 1000000);
N %= 1000000;
if (N > 99999) {
printf("%d,", N / 1000);
N %= 1000;
if (N > 99) {
printf("%d", N);
}
else if (N > 9) {
printf("0%d", N);
}
else {
printf("00%d", N);
}
}
else if (N > 9999) {
printf("0%d,", N / 1000);
N %= 1000;
if (N > 99) {
printf("%d", N);
}
else if (N > 9) {
printf("0%d", N);
}
else {
printf("00%d", N);
}
}
else {
printf("00%d,", N / 1000);
N %= 1000;
if (N > 99) {
printf("%d", N);
}
else if (N > 9) {
printf("0%d", N);
}
else {
printf("00%d", N);
}
}
}
else {
printf("1,000,000,000");
}
return 0;
} #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; }