首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

程序输出有关问题

2013-01-23 
程序输出问题为什么我这个程序没有输出啊?我的目的是随便写个数都把它转成字符串,我想到了用itoa,可是又不

程序输出问题
为什么我这个程序没有输出啊?
我的目的是随便写个数都把它转成字符串,我想到了用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);
}

注意细节。

热点排行