大佬们,看看这个哪有问题
OJ上的题,我测试没有问题,但是OJ上显示WRONG ANSWER题目:
描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。
#include<stdio.h>
int main()
{
int h,r,k=0;
double Pi,V,a=0;
Pi=3.14159;
scanf("%d%d",&h,&r);
V=Pi * r * r * h/1000;
while(1)
{
k=k+1;
a=20-k*V;
if(a<V)
break;
}
if(a==0)
printf("%d",k);
else
printf("%d",k+1);
return 0;
} #include<stdio.h>
int main(void){
int k = 0;
int h,r;
double Pi = 3.14159;
double drinked = 0;
double V;
printf("high and radius: ");
scanf("%d%d", &h, &r);
V = Pi * r * r * h/1000;
while(drinked < 20){
drinked += V;
k++;
}
printf("need drink %d bucket", k);
return 0;
}
你的代码逻辑太乱了。 #include <stdio.h>
#define pi 3.14159
int main()
{
int h, r, volume, bucket;
scanf("%d %d", &h, &r);
volume = pi*r*r*h/1000;
for(bucket = 1; volume*bucket < 20; bucket++){}
printf("%d", bucket);
return 0;
} #include <stdio.h>
#define Pi 3.14159
int main()
{
int h,r;
double v,res;
scanf("%d %d",&h,&r);
v = Pi * r * r * h / 1000;
res = 20 / v;
printf("%d\n",(int)(res + 0.5));
return 0;
}
页:
[1]