#include <stdio.h>
#define MAXN 10
void f( long int x, char *p );
int main()
{
long int x;
char s[MAXN] = "";
scanf("%ld", &x);
f(x, s);
printf("%s\n", s);
return 0;
}
/* 你的代码将被嵌在这里 */


void f( long int x, char *p )
{
int i=0;
if(x==0)
{
*p='0';
return;
}
if(x<0)
{
x=-x;
p++;
i=1;
}
int a;long int b=x;
while(b!=0)
{
b=b/16;
p++;
}
p++;
*p='\0';
while(x!=0)
{
a=x%16;
if(a<=9)
a=a+48;
else
a=a+55;
p--;
*p=(char)a;
x=x/16;
}
if(i)
{
p--;
*p='-';
}
}
有没有大佬看看,为什么我这样在主函数输出s输出不出来,在void函数里最后行加个printf把p输出出来就可以?
不知道你这个问题是否已经解决, 如果还没有解决的话:函数正常情况下无法结束