C程序在分割两个变量时输出错误

时间:2017-03-05 09:52:19

标签: c math

我正在尝试通过让用户输入两个数字(面积和宽度)然后将两个变量(面积和宽度)分开以获得高度的结果来创建一个输出矩形高度的程序。运行此程序时,我得到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;
}

4 个答案:

答案 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等在线调试器开始使用的最佳方式。

当调试器遇到断点时,您会看到“局部变量”右侧窗格中areawidthheight的值都是正确的。

因此,您可以推断出问题只能出现在断点的最后一行。

答案 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;
}