Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的变量乘法? //水电站大坝助手 #包括 #定义GRV 9.80 #定义EFINC 0.9 #定义EFINC2 90 int main() { //定义要使用的所有变量 双高、工作、质量; printf(“坝高(米):”; 扫描频率(“%lf”和高度); printf(“水流量(千立方米/秒):”; 扫描频率(“%lf”和质量); 功=(质量*重力*高度*EFINC); printf(“大坝将在%d%%效率下产生%f兆瓦”,以及工作,EFINC2); 返回0; }_C_Variables_Constants_Multiplication - Fatal编程技术网

C语言中的变量乘法? //水电站大坝助手 #包括 #定义GRV 9.80 #定义EFINC 0.9 #定义EFINC2 90 int main() { //定义要使用的所有变量 双高、工作、质量; printf(“坝高(米):”; 扫描频率(“%lf”和高度); printf(“水流量(千立方米/秒):”; 扫描频率(“%lf”和质量); 功=(质量*重力*高度*EFINC); printf(“大坝将在%d%%效率下产生%f兆瓦”,以及工作,EFINC2); 返回0; }

C语言中的变量乘法? //水电站大坝助手 #包括 #定义GRV 9.80 #定义EFINC 0.9 #定义EFINC2 90 int main() { //定义要使用的所有变量 双高、工作、质量; printf(“坝高(米):”; 扫描频率(“%lf”和高度); printf(“水流量(千立方米/秒):”; 扫描频率(“%lf”和质量); 功=(质量*重力*高度*EFINC); printf(“大坝将在%d%%效率下产生%f兆瓦”,以及工作,EFINC2); 返回0; },c,variables,constants,multiplication,C,Variables,Constants,Multiplication,值设置正确,我通过让它打印高度和质量来测试它,但工作从来没有收到一个值,EFINC2打印出一个荒谬的数字,我真的不确定 //Hydroelectric Dam Helper #include <stdio.h> #define GRAV 9.80 #define EFINC 0.9 #define EFINC2 90 int main() { //Defines all the variables to be used double height, work, mass;

值设置正确,我通过让它打印高度和质量来测试它,但工作从来没有收到一个值,EFINC2打印出一个荒谬的数字,我真的不确定

//Hydroelectric Dam Helper
#include <stdio.h>
#define GRAV 9.80
#define EFINC 0.9
#define EFINC2 90


int main()
{
  //Defines all the variables to be used
  double height, work, mass;
  printf("Height of dam (in meters):");
  scanf("%lf", &height);
  printf("Flow of water (in thousand cubic meters per second):");
  scanf("%lf", &mass);
  work = (mass * GRAV * height * EFINC); 
  printf("The dam would produce %f megawatts at %d%% efficency", &work, EFINC2);
  return 0; 
}
应改为:

printf("The dam would produce %f megawatts at %d%% efficency", &work, EFINC2);
&work
是指向work的指针,即
double*
,但对于
printf
要打印值,需要传递一个
double
,而不是指针。在您的平台上,
double*
可能与
double
的大小不同,从而导致后续的
printf
格式使用错误的数据

应改为:

printf("The dam would produce %f megawatts at %d%% efficency", &work, EFINC2);

&work
是指向work的指针,即
double*
,但对于
printf
要打印值,需要传递一个
double
,而不是指针。在您的平台上,
double*
可能与
double
的大小不同,从而导致后续的
printf
格式使用错误的数据。

问题在于,您的printf输出带有
%f
说明符的
float
,但通过
传入了
double*
。只需卸下
&
,它就可以正常工作了

printf("The dam would produce %f megawatts at %d%% efficency", work, EFINC2);

问题是printf使用
%f
说明符输出一个
浮点
,但通过
&work
传入一个
双*
。只需卸下
&
,它就可以正常工作了

printf("The dam would produce %f megawatts at %d%% efficency", work, EFINC2);

您收到“荒谬数字”的原因是您正在将
work
的地址传递给
printf()
。将
&work
更改为
work
,它应该可以正常工作。

您收到“荒谬数字”的原因是您正在将
work
的地址传递给
printf()
。将
&work
更改为
work
,它应该可以正常工作。

当然可以。printf行中的
&符号表示读取变量
work
地址,而不是值。printf行中的&符号表示读取变量
work
地址,而不是

尝试在常量中添加一个d,以强制c不转换为int。您还可以尝试显式地将值强制转换为float或double。

尝试在常量后面附加一个d,以强制c不强制转换为int可能会起作用。您还可以尝试显式地将值强制转换为float或double。

您已经给出&work,它是内存中work变量的地址,因此它不会打印任何荒谬的值,而是打印work的内存位置

您应该删除&from&work以接收work变量的值


printf(“大坝将以%d%%的效率产生%f兆瓦”,工程,EFINC2)

您已经给出了&work,它是内存中work变量的地址,因此它不会打印任何荒谬的值,而是打印工作的内存位置

您应该删除&from&work以接收work变量的值


printf(“大坝将以%d%%的效率产生%f兆瓦”,工程,EFINC2)

很容易想到控制台上打印的是变量值…..为了安全,请始终在调试器中检查实际变量。很容易想到控制台上打印的是变量值…..为了安全,请始终在调试器中检查实际变量。