修改如下: 1、n/10=0改为n/10 == 0
2、convert(n%10,numbers)改为convert(n/10,numbers)
3、numbers[pos] = '0'+n%10 改为 numbers[pos++] = '0' + n%10
4、在3所述行之上增加一行 numbers[pos++] = '+';
5、numbers[convert(n)] 改为 numbers[convert(n,numbers)]
int convert(int n,char numbers[])
{
if(n/10==0)
{
numbers[0] = '0'+n;
return 1;
}
else
{
int pos = convert(n/10,numbers);
numbers[pos++] = '+';
numbers[pos++] = '0' + n%10;
return pos;
}
}
void main()
{
int n;
char numbers[20];
scanf("%d",&n);
numbers[convert(n,numbers)] = 0;
puts(numbers);
return 0;
}
修改如下:
#include <stdio.h>
int convert(int n,char numbers[])
{
if (n/10==0) //修改1:n/10=0 修改为n/10==0
{
numbers[0] = '0'+n;
return 1;
}else
{
int pos = convert(n/10,numbers); //修改2:n%10修改为n/10
numbers[pos++] = '+'; //修改3 新增这一句
numbers[pos++] = '0' + n%10; //修改4:numbers[pos] = '0' + n%10改为numbers[pos++] = '0' + n%10
return pos;
}
}
int main()
{
int n;
char number[20];
scanf("%d",&n);
number[convert(n,number)] = '\0'; //修改5:number[convert(n)] = '\0'修改为number[convert(n,number)] = '\0'
puts(number);
return 0;
};