#include
void main()
{
int v,n;//m化升,n是桶数
int h, r; {};
scanf_s("%d %d", &h,&r);
v = h * r*r*3.14 / 1000;
n = 20 / v;
printf("%d", n+1);
}
v= 那一行显示算术溢出,请问怎么解决
参考如下:
#include<stdio.h>
#include<math.h>
int main()
{
double v;
int n; // n是桶数
int h, r; {};
scanf_s("%d %d", &h,&r);
v = h * r*r*3.14 / 1000;
n = (int)ceil(20 / v); // ceil(x)返回不小于x的最小整数值(然后转换为double型)。
printf("%d", n);
return 0;
}
v是整型,后面3.14是浮点数,自然有溢出了啊,小数部分丢失了啊
v还是定义为浮点型吧