问题描述:
当我在圆圈中输入 r 的浮点值时,它总是取零值。圆的面积和周长结果为零,因为 r 取零值。
#define _CRT_SECURE_NO_WARNINGS #includevoid circle(float, float *, float *); main() { float radius, area, perimeter; printf("Enter radius:"); scanf("%f",&radius); circle(radius, &area, &perimeter); printf("radius:%f area: %f, perimeter:%f ", radius, area, perimeter); } void circle(r, ar, per) float r, *ar, *per; { *ar =3.14*(r*r); *per =2*3.14*r; }
解决思路一:
问题可能是您为浮点数输入了错误的符号序列。
例如写
if ( scanf("%f",&radius) == 1 )
{
circle(radius, &area, &perimeter);
printf("radius:%f area: %f, perimeter:%f ", radius, area, perimeter);
}
else
{
puts( "Error: incorrect input." );
}
但无论如何函数声明
void circle(float, float *, float *);
不对应函数定义
void circle(r, ar, per)
float r, *ar, *per;
{
*ar =3.14*(r*r);
*per =2*3.14*r;
}
在函数定义中声明函数,如
void circle(float r, float *ar, float *per )
{
*ar =3.14*(r*r);
*per =2*3.14*r;
}
解决思路二(这是解决小编问题的思路):
以上仅为部分解决思路,添加下方公众号后回复001,即可查看全部内容。公众号有许多评分最高的编程书籍和其它实用工具,无套路,可放心使用
如果您觉得有帮助,可以关注公众号——立志于成为对大家有益的公众号



