不错!
我有几个想法:
1.考虑负数(题目没说是正整数)
2.data==0 不太严密,如果输入的是0呢
3.题外话:如果"烟雨生平"或者"林锐"写
函数原型大概是
char *sort(int,char *)或者
char *sort(char *,int)
我在想他们会如何处理
考虑负数只需要在主函数加个判断即可.
考虑0也只需要在主函数加个if即可.
所以.我没有写主函数.这事应该留给楼主.我只是写出递归的函数.
而我本人更倾向于 sprintf
你的最后一个.我不发表言论
----------------解决方案--------------------------------------------------------
char * sort( long k)
{
if(k<10)
return 48+k
else
return 48+k%10 + sort(k/10)
}
字符串怎么相加忘了
----------------解决方案--------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
static void convert_string(char *buf, int integral);
int main(void)
{
char buf[BUFSIZ];
int integral, i, signal_flag;
printf("Enter integral: ");
scanf("%d", &integral);
if (integral < 0)
{
signal_flag = 1;
integral = -integral;
}
convert_string(buf, integral);
if (signal_flag == 1)
{
printf("%c", '-');
}
for (i = strlen(buf) - 1; i >= 0; i--)
{
printf("%c", buf[i]);
}
printf("\n");
exit(0);
}
static void convert_string(char *buf, int integral)
{
if (integral)
{
*buf = integral % 10 + '0';
convert_string(++buf, integral /= 10);
}
else
{
*buf = '\0';
}
}
----------------解决方案--------------------------------------------------------