(纯属认为自己想法好理解一些,勿喷)
要求编写一个程序,将某个位数不确定的非负整数进行三位分节后输出。程序保证数据是不超过4个字节的正整数。
输入格式:
输入一个非负整数,以回车结束输入。
输出格式:
将这个正整数每隔3位就用逗号分隔,然后输出。
输入样例:
1234567
输出样例:
1,234,567
基本思路:将不满三位的余数和三等分的元素分开来输出,分几种情况讨论。
代码示例:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,l,a,b,d=0,e=0;
char c[10000];
gets(c);
l=strlen(c);
a=l/3;
b=l%3;
//余数不为零
if(b!=0)
{
if(a==0)//整体长度小于3
{
for(i=0;i<l;i++)
{
printf("%c",c[i]);
}
}
if(a!=0)
{
for(i=0;i<b;i++)
{
printf("%c",c[i]);
if(i==b-1)
printf(",");
}
for(j=b;j<l;j++)
{
printf("%c",c[j]);
d++;e++;
if(d%3==0&&e!=l-b)
printf(",");
}
}
}
//整除,无余数
if(b==0)
{
for(j=0;j<l;j++)
{
printf("%c",c[j]);
d++;e++;
if(d%3==0&&e!=l)
printf(",");
}
}
return 0;
}