在我使用quit命令之前,C不会运行

时间:2017-09-10 22:28:03

标签: c scanf

其他程序员。我对这个领域很新,这就是我可能遇到问题的原因。

我被告知编写一个程序来查找圆的面积和周长。一个条件,将输出显示为5位小数。输出应该是这样的。

圆的半径是________。

圆的直径是_______。

圆圈的区域是__________。

周长是____________。

这是我为此问题编写的代码。

#include<stdio.h>
    int main()
    {
        float r, area, circ, diam, pi = 3.14159;

        printf("Enter the radius please");
        scanf("%f\n", &r);

        printf("The radius of the circle is %0.5f\n", r);

        diam = 2 * r;
        printf("The diameter of the circle is %0.5f\n", diam);

        area = pi * r * r;
        printf("The area of the circle is %0.5f\n", area);

        circ = 2 * pi * r;
        printf("The circumference of the circle is %0.5f\n", circ);

        return 0;
    }

代码运行并在终端显示我

Enter the radius please4

我将4作为测试样本。这是程序停止工作的时候。我输入q并按Enter键。这是输出的其余部分出现的情况。

The radius of the circle is 4.00000
The diameter of the circle is 8.00000
The area of the circle is 50.26544
The circumference of the circle is 25.13272

2 个答案:

答案 0 :(得分:2)

问题在于您的scanf格式字符串:

scanf("%f\n", &r);

通过将\n放入格式字符串中,它会消耗您输入的任何换行符,并等待不是换行符的字符。

从格式说明符中删除\n,它将按预期工作:

scanf("%f", &r);

答案 1 :(得分:1)

Najik, 你确定你想要一个&#34; \ n&#34;在scanf? 我想你想要什么,你需要删除它。 之前:

scanf("%f\n", &r);

后:

scanf("%f", &r);

这将确保在输入数字并按Enter键后立即完成scanf功能。

希望我能帮助你。