怎么连样例都通不过啊?感觉没错啊?

#include
#include
int main()
{
const double pi=acos(-1.0);
double r, h, s1, s2, s;
scanf("%1f%1f",&r,&h);
s1=pi*r*r;
s2=2*pi*r*h;
s=s1*2.0+s2;
printf("Area=%.3f\n",s);
return 0;
}
//样例

输入 3.5 9
输出 274.889

别把s1与s2分开来加,你这样分开来加结果肯定更加偏大,因为结果会向上取,误差就更大了。试着不用s1,s2,直接相加即可。
图片说明

s1=pi*r*r;  
s2=2*pi*r*h; 
s=s1*2.0+s2;

改成

s=pi*r*r*2.0+2*pi*r*h