在一行中输入一个整数
![]()
。
输出一个字符串,表示将
转换为千分位格式后的结果。
请不要输出多余的空格或换行。
980364535
980,364,535
6
6
#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; }
#include <stdio.h> int main(){ long n; int arr[20] = { 0 }, i = 0; scanf("%ld", &n); while(n){ arr[i] = n % 10; n /= 10; i++; } for(int j = i - 1, count = 0; j >= 0; j--, count++){ printf("%d", arr[j]); if((i-1 - count) % 3 == 0 && count < i - 1) printf(","); } return 0; }
#include <stdio.h> int main() { int n = 0; scanf("%d", &n); getchar(); int count = 1; char str[20] = { 0 }; while (n) { str[count++] = (n % 10) + '0'; n /=10; if (count % 4 == 0 && n!=0) str[count++] = ','; } for (int i = count-1; i >=1; i--) { printf("%c", str[i]); } return 0; }