繁体   English   中英

这个C程序怎么了?

[英]What is wrong with this C program?

我只想将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));

而且我不知道如何将其分配给变量

printf ("%d" , &z);

打印z (*)的地址,而不是其值。 printf("%d", z)打印该值。

(*)实际上,该行为是未定义的,在64位CPU上,它可能会打印一半的地址。

&z是变量z的地址。 如果要打印出z ,则代码很简单

printf("%d", z);

当将值z ,将使用&z ,因为scanf需要一个指针才能修改变量。

pow返回double并且它接受double类型的参数。

double pow(double x, double y)  

您需要%f符中printf并删除&z

另一种方法是将pow的返回值转换为int并使用%d

int z = (int)pow(x, y);
printf ("%d" , z);

pow返回双精度值(而不是引用),您需要执行打印语句:

printf ("%f" , z);

将z更改为双精度后:

double z;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM