编写程序,将用户输入的一个位数不确定的正整数按照标准的三位分节格式输出,求救啊
3个回答
展开全部
这其实就是一个10到1000进制转化, 把1000进制的每一位保存在数组里, 最后按一定顺序输出就是了
int main()
{
int v[20] = {0};
int iTop = 0;
int i = 0;
scanf("%d", &i);
while (i != 0)
{
v[iTop++] = i % 1000;
i /= 1000;
}
while (--iTop >= 0)
{
printf("%d", v[iTop]);
if (iTop > 0)
{
printf(",");
}
}
}
如果用递归的话就更简单了, 你琢磨琢磨
void output(int i)
{
if (i > 1000)
{
output(i / 1000);
putchar(',');
}
printf("%d", i % 1000);
}
int main()
{
int v[20] = {0};
int iTop = 0;
int i = 0;
scanf("%d", &i);
output(i);
}
int main()
{
int v[20] = {0};
int iTop = 0;
int i = 0;
scanf("%d", &i);
while (i != 0)
{
v[iTop++] = i % 1000;
i /= 1000;
}
while (--iTop >= 0)
{
printf("%d", v[iTop]);
if (iTop > 0)
{
printf(",");
}
}
}
如果用递归的话就更简单了, 你琢磨琢磨
void output(int i)
{
if (i > 1000)
{
output(i / 1000);
putchar(',');
}
printf("%d", i % 1000);
}
int main()
{
int v[20] = {0};
int iTop = 0;
int i = 0;
scanf("%d", &i);
output(i);
}
展开全部
#include <stdio.h>
main()
{
char a[200];
char m,n,i,j;
for(i=0;a!='\n';i++)
{
m=getch();
if(m!='\n')
a[i]=m;
else
break;
}
for(j=0;j<i;j++)
{
n=j%3;
if(n=0&&j!=0}
printf(",%d",a[j]);
else
printf("%d",a[j]);
}
}
机子上没有c语言环境,不能编译调试,不好意思,大致思路写出来了,
如果需要输入200位以上的数字时只要修改前面a[]中数字就行了,没有编译,自己编译修改一下吧。。。
main()
{
char a[200];
char m,n,i,j;
for(i=0;a!='\n';i++)
{
m=getch();
if(m!='\n')
a[i]=m;
else
break;
}
for(j=0;j<i;j++)
{
n=j%3;
if(n=0&&j!=0}
printf(",%d",a[j]);
else
printf("%d",a[j]);
}
}
机子上没有c语言环境,不能编译调试,不好意思,大致思路写出来了,
如果需要输入200位以上的数字时只要修改前面a[]中数字就行了,没有编译,自己编译修改一下吧。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个简单啊;
定义三个In变量,a,b,c;
读入就用
scanf("%2d%3d%3d",&a,&b,&c);
输出就用:
printf("%d,%d,%d.\n",a,b,c);
试过了:
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%2d%3d%3d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
};
定义三个In变量,a,b,c;
读入就用
scanf("%2d%3d%3d",&a,&b,&c);
输出就用:
printf("%d,%d,%d.\n",a,b,c);
试过了:
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%2d%3d%3d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询