我正在尝试通过让用户输入两个数字(面积和宽度)然后将两个变量(面积和宽度)分开以获得高度的结果来创建一个输出矩形高度的程序。运行此程序时,我得到0.0000。
我认为这可能与我的一个scanf或printf行的转换说明符有关。
我正在学习C,因此无法解决问题所在。
#include <stdio.h>
int main()
{
/* initilize variables (area, width and height) */
float area, width, height;
/* assign variables */
area = 0.0;
width = 0.0;
height = 0.0;
/* Gather user input */
printf("Enter the area in square metres\n");
scanf("%f", &area);
printf("Enter the width in square metres\n");
scanf("%f", &width);
/* Height of a rectangle = area/width */
height = area/width;
/* Print result */
printf("The height of the rectangle is: %f", &height);
return 0;
}
答案 0 :(得分:1)
错误在行
printf("The height of the rectangle is: %f", &height)
应该是height
而不是&height
。
将其更改为
printf("The height of the rectangle is: %f", height)
你很高兴。
我现在已经测试过,这很好。
Enter the area in square metres
12
Enter the width in square metres
3
The height of the rectangle is: 4.000000
正如MartinR在问题评论中指出的那样,你应该学会使用Debugger然后你会很快看到height
得到正确的值。所以这个问题与划分两个变量&#34;无关。并且只有你的印刷陈述是错误的。
答案 1 :(得分:1)
正如其他人所提到的,除了最后的printf()
行外,您的所有代码都是正确的。
其他响应表明调试器。如果您不熟悉调试器,可以使用onlinegdb等在线调试器开始使用的最佳方式。
当调试器遇到断点时,您会看到“局部变量”右侧窗格中area
,width
和height
的值都是正确的。
因此,您可以推断出问题只能出现在断点的最后一行。
答案 2 :(得分:0)
这只是一个小小的错误。
Enter the area in square metres
25
Enter the width in square metres
5
The height of the rectangle is: 5.000000
Process finished with exit code 0
手动测试
{{1}}
答案 3 :(得分:0)
这基本上是一个拼写错误的问题,你打印高度变量的地址(&height
)
#include <stdio.h>
int main()
{
/* initilize variables (area, width and height) */
float area, width, height;
/* assign variables */
area = 0.0;
width = 0.0;
height = 0.0;
/* Gather user input */
printf("Enter the area in square metres\n");
scanf("%f", &area);
printf("Enter the width in square metres\n");
scanf("%f", &width);
/* Height of a rectangle = area/width */
height = area/width;
/* I have just changed &height to height */
printf("The height of the rectangle is: %f", height);
return 0;
}