jingjiayou @ 2024-11-07 15:06:52
#include<stdio.h>
#include<math.h>
int main()
{
int h,r,t;
double v;
scanf("%d %d",&h,&r);
v=h*r*r*3.14;
t=(int)(2e4/v+0.5);
printf("%d",t);
return 0;
}
by linjinhong @ 2024-11-07 21:30:09
你的代码中有几个问题需要修正:
scanf
函数的格式字符串中缺少了r
的类型说明符%d
,应该是"%d %d"
。v
变量的类型应该是double
,因为你在计算体积时使用了3.14
(一个浮点数)。t
变量的类型应该是double
,因为你在计算t
时使用了2e4
(一个浮点数)。printf
函数中t
的值应该是%.0f
,因为t
是一个double
类型的值。下面是修正后的代码:
#include<stdio.h>
#include<math.h>
int main()
{
int h, r;
double v, t;
scanf("%d %d", &h, &r);
v = h * r * r * 3.14;
t = (double)(2e4 / v + 0.5);
printf("%.0f", t);
return 0;
}
这段代码现在应该可以正确地读取两个整数h
和r
,计算圆柱体的体积,然后计算并输出所需的瓷砖数量。注意,t
的值被强制转换为double
类型,以确保在计算时不会丢失精度。最后,printf
函数使用%.0f
来输出t
的值,这将确保输出是一个没有小数部分的整数。