我只是想将 pow 的值赋给变量,我用过这个
#include<stdio.h>
#include<math.h>
int main( void )
{
int x;
int y;
int z;
x=10;
y=2;
z = pow(x,y);
printf ("%d" , &z);
return 0;
}
但在输出中我得到-1076813284,对不起,但我刚开始学习C并且在每个教程中每个人都只打印pow的值,比如
printf("Value 3.05 ^ 1.98 = %lf", pow(3.05, 1.98));
我不知道如何将它分配给变量
答案 0 :(得分:5)
printf ("%d" , &z);
打印z
(*)的地址,而不是其值。 printf("%d", z)
打印该值。
(*)实际上,行为是未定义的,在64位CPU上,它可能会打印一半的地址。
答案 1 :(得分:2)
&z
是变量z
的地址。如果您要打印z
的值,那么代码就是
printf("%d", z);
当将值读入&z
时,您会使用z
,因为scanf
需要一个指针才能修改您的变量。
答案 2 :(得分:1)
pow
返回double
,它接受double
类型的参数。
double pow(double x, double y)
您需要%f
中的printf
说明符,并从&
中删除z
。
另一种方法是将pow
的返回值转换为int
并使用%d
int z = (int)pow(x, y);
printf ("%d" , z);
答案 3 :(得分:1)
pow返回一个double(而不是引用),你需要创建你的print语句:
printf ("%f" , z);
将z更改为double后:
double z;