在输出时能不能引用函数?该怎么处理

在输出时能不能引用函数?
#include <stdio.h>
#include <math.h>
int main()
{
   int a,b;
   scanf("%d",&a);
   b=pow(a,3);
   printf("%d\n",b);
}
/*输入一个整数 x,输出 x 的3次方。想一想,在C语言中如何用公式来表达 x 的 3次方?

输入:一个整数。

输出:该整数的 3 次方值。*/

这个是对的,而
#include <stdio.h>
#include <math.h>
int main()
{
   int a;
   scanf("%d",&a);
   printf("%d\n",pow(a,3));
}

就不行,我记得以前用过在输出里边加上函数的 输出的时候难道不是函数的返回值吗?

------解决方案--------------------
肯定可以呀,不知楼主出了什么错误
------解决方案--------------------
pow返回值好像是double
前面的那个是隐式转成int了,不过编译器应该有报警告的吧
下面的就是相当于放一个double当int读了
------解决方案--------------------
可以的,请楼主查看pow函数的原型,
double pow( double x, double y );
int main()
{
    int a = 11;
    int res;

    res = pow(a, 3);
    printf("%d %d\n", res, pow(a,3));
    printf("%d %d\n", res, (int)pow(a,3));
    printf("%d %lf\n",res, pow(a,3));

    return 0;
}


------解决方案--------------------
是返回值啊,不过你要和 %? 对的上才行
------解决方案--------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

------解决方案--------------------
引用:
可以的,请楼主查看pow函数的原型,
double pow( double x, double y );
int main()
{
    int a = 11;
    int res;

    res = pow(a, 3);
    printf("%d %d\n", res, pow(a,3));
    printf("%d %d\n", res, (int)pow(a,3));
    printf("%d %lf\n",res, pow(a,3));

    return 0;
}


++
------解决方案--------------------
常量也有类型!
int main()
{
    int a = 11;
    int res;
 
    res = (int)pow((double)a, 3.0);
    printf("%d %d\n", res, (int)pow((double)a,3.0));
    printf("%d %lf\n",res, pow((double)a,3.0));
 
    return 0;
}