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
- 上传者