9-1 改错题

9-1 改错题

先将一个正整数转换为十进制数字字符串,再将千位分隔符插入到该字符串中,最后输出该字符串。
【含有错误的源程序】
#include<stdio.h>
#include<string.h>
void itoa(char s[],int num)
{
int n=num,i=0;
printf("%d\n",num);
while(n)
{ i++; n/=10; }
s[i]=\0;
while(num)
{
s[--i]=num%10+'0'; num/=10;
}
}
void insert(char s[])
{
char j,k,t;
t=j=strlen(s);
while(j>3)
{
j=j-3;
for(k=t;k>j;k--)
s[k]=s[k+1];
s[j]=',';
t++;
}
}
void main()
{
static char s[20]; int num;
scanf("%d",&num);
itoa(s,num);
insert(s,num);
puts(s);
}

测试案例:
输入:

1234567 

输出:

1,234,567

信息

难度
7
分类
(无)
标签
递交数
15
已通过
7
通过率
47%
被复制
5
上传者