程序输出问题
为什么我这个程序没有输出啊?
我的目的是随便写个数都把它转成字符串,我想到了用itoa,可是又不能定义一个无限大的数组(谁能教我动态数组啊??%>_<%)然后我就像下面这么写可是没有输出东西啊?错在哪里了呢?
#include <stdio.h>
int main()
{
void f(int a);
int a;
scanf("%d",&a);
if(a<0)
{putchar('- ');
a=-a;}
f(a);
return 0;}
void f(int n)
{int i;
if(i=n/10!=0)
f(n);
putchar(n%10+'\0');
putchar('32');}
我觉得和书上一样啊?那怎么就错了诶?搞不定啊,求大神帮忙啊
[解决办法]
itoa是Windows下特有的API,去看MSDN。
什么不会就去学什么,比如动态的内存管理。
觉得和书上一样?真的完全一样?
if(i=n/10!=0)
f(n);
这一句应该是这样:
if ((i = n / 10) != 0) // 少了对括号
f(i); // 应该是递归调用i,而不是n
putchar(n%10+'\0');
putchar('32');
应该是:
putchar(n % 10 + '0'); // 注意'0'和'\0'的区别
putchar(32); // 应该没有'',32表示空格
# include <stdio.h>
int main()
{
void f(int a);
int a;
scanf("%d", &a);
if (a < 0)
{
putchar('-');
a = -a;
}
f(a);
return 0;
}
void f(int n)
{
int i;
if ((i = n / 10) != 0)
f(i);
putchar(n % 10 + '0');
putchar(32);
}