c语言代码测试,能编译代码的来看看

谁能帮我运行一下以下代码,并把运行结果发给我下。
代码如下:
#include stdio.h
#include string.h
#include math.h
#include stdarg.h

char *to_string(int count,double first,...);
void integer_to_string(char integer_string[],size_t leng,int i);
void decimal_to_string(char decimal_string[],size_t leng,double n);

int main(void)
{
printf("%s",to_string(4,1.23,2.56,3.82,0.00));//测试函数功能
return 0;
}

/*把数字整数部分转换为字符串的函数*/
void integer_to_string(char integer_string[],size_t leng,int in)
{
int digit=0;//用来计数数字整数部分的位数
char num[]={'0','1','2','3','4','5','6','7','8','9'};//各个位数上的字符串

while(true)
{
if(!(in/(int)pow(10,digit)))
break;
else
digit++;
}//统计输入整数的位数

int a=digit;
if(in>=0)
{
for(int i=0;i<digit;++i)
{
integer_string[i]=num[in/(int)pow(10,--a)];
in=in-in/(int)pow(10,a)*(int)pow(10,a);
}
integer_string[digit+1]='\0';
}
else
{
integer_string[0]='-';
in=(-in);
for(int i=1;i<digit+1;++i)
{
integer_string[i]=num[in/(int)pow(10,--a)];
in=in-in/(int)pow(10,a)*(int)pow(10,a);
}
integer_string[digit+2]='\0';
}//把整数转化为字符串
}

/*把数字小数部分转化为字符串的函数*/
void decimal_to_string(char decimal_string[],size_t leng,double n)
{
int I=0;//中间变量
char num[]={'0','1','2','3','4','5','6','7','8','9'};//各个位数上的字符串

 /*把数字小数部分转换为字符串*/
decimal_string[0]='.';
I=n*10;
decimal_string[1]=num[I];
n=n*10-I;
I=n*10;
decimal_string[2]=num[I];
decimal_string[3]='\0';

}

char* to_string(int count,double first,...)
{
va_list parg;//可变数量变元函数必须变量
char number_string[100]={0};//存储数字转化的字符串
char integer[20]={0};//储存数字整数部分转换字符串的中间数组
char decimal[4]={0};//储存数字小数部分转换字符串的中间数组
int integer_part=(int)first;//数字整数部分
double decimal_part=first-integer_part;//数字小数部分
const char comma[]={','};//逗号字符
double value=0.0;//中间变量

/*初始化字符串数组*/
integer_to_string(integer,20,integer_part);

decimal_to_string(decimal,4,decimal_part);
strcpy(number_string,integer);
strcat(number_string,decimal);

/*把数字转换为字符串*/
va_start(parg,first);
while((value=va_arg(parg,double))!=0.0)
{
    integer_part=(int)value;
    decimal_part=value-integer_part;
    char integer[20]={0};
    char decimal[4]={0};
    strcat(number_string,comma);
    integer_to_string(integer,20,integer_part);
    decimal_to_string(decimal,4,decimal_part);
    strcat(number_string,integer);
    printf("%s\n",number_string);
    strcat(number_string,decimal);
}
va_end(parg);

return number_string;//返回字符串

}

运行有乱码,直接复制的结果如下:
1.22,霶?呺?2
1.22,霶?呺?2.56,<
祝p=?3
1.22,霶?呺?2.56,<
祝p=?请按任意键继续. . .

编译出来是有错误的,自己再改改吧

编译出来是有错误的,自己再改改吧

代码有你这样子写的吗?一看就没有帮你该的欲望,连第一个包含头文件都能搞错!