C程序自动循环
编辑:问题已经解决了,不过我现在会尽量弄清楚 当我编写一个计算圆面积的程序时,我将“3.1415926535”指定给一个常量浮点Pi。当我在程序中使用areaCircle=Pi*radius*radius时,其中radius是一个整数,areaCircle是一个浮点数,程序打印出类似“7.000000”的内容。我原以为它会返回“7.123456”之类的小数点 编辑:这是代码,如果你们需要:C程序自动循环,c,rounding,C,Rounding,编辑:问题已经解决了,不过我现在会尽量弄清楚 当我编写一个计算圆面积的程序时,我将“3.1415926535”指定给一个常量浮点Pi。当我在程序中使用areaCircle=Pi*radius*radius时,其中radius是一个整数,areaCircle是一个浮点数,程序打印出类似“7.000000”的内容。我原以为它会返回“7.123456”之类的小数点 编辑:这是代码,如果你们需要: int radius float circumference,areaCircle; const int
int radius
float circumference,areaCircle;
const int PI = 3.14159265358979323846264338327;
printf("Enter the radius of the circle: \n");
scanf("%d",&radius);
circumference = PI*2*radius;
areaCircle = PI*radius*radius;
printf("The circumference of a circle with radius %d is %f and its area is %f\n",radius,circumference,areaCircle);
在您发布的代码中,您已将
PI
声明为int
。尝试:
const float PI = 3.14159265358979323846264338327;
如果你把你的问题说得更清楚,那就太好了
虽然我有一些建议
- 您的程序将
,因为areaCircle是浮动的。它也在计算一个浮点数areaCircle值显示为浮动数据
-半径逻辑上
不能是整数类型
- 您可以将
所有数据类型设置为float/double
- 也可以使用此into语句
小数点后的控制数字
或%.2f
或您需要的任何值%.0f
const int PI=3.14159265358979323846264338327
这里PI是int
但是3.14159265358979323846264338327
是一个double
现在,请将所有变量声明为double
。无float
,无int
。(您需要调整printf和scanf格式以匹配。)一般来说,您可能更喜欢double
而不是float
(我知道Daniel在他们的问题中使用了float
,所以这也适用于那里),因为它们提供了更高的精度,在大多数现代浮点单位上,它们在时间上也非常便宜,虽然它们占用更多的空间,但对于大多数应用程序来说,空间不是问题。@Muzer:大多数浮点实现,即使是在现代CPU上,也不支持双精度,或者必须使用(可能是部分的)软件模拟。这是因为绝大多数CPU都在嵌入式系统中,并有最好的单精度FPU。好吧,点,不认为这可能是一个嵌入式设备的问题。但你关于“最现代…”的说法是错误的。事实上,C主要用于这样的系统或内核编程,而这些系统或内核编程(如Linux)可能也不允许使用FPU。我认为嵌入式系统可能没有FPU,所以我的说法是完全正确的(即使有误导性)。我认为带有FPU的微控制器能够很好地支持双精度。代码中唯一“错误”的变量是PI
。除了计算面积和周长时可能出现的算术溢出(这可能发生在任何变量类型上),其他一切都可以工作。您可以使用cos(-1)而不是pi:)我想您的意思是acos(-1)
`ow,,yes:)`