跪求C语言大神!!!

#include<stdio.h>
#define PI 3.141592653
int main(){
double r,h,c,s1,s2,v1,v2;
printf("请输入圆半径,圆柱高:");
scanf("%f,%f",&r,&h);
c=2*PI*r;
s1=PI*r*r;
s2=4*PI*r*r;
v1=(4/3)*PI*r*r*r;
v2=s1*h;
printf("圆周长:%7.2f\n圆面积:%7.2f\n圆球表面积:%7.2f\n圆球体积:%7.2f\n圆柱体积:%7.2f\n",c,s1,s2,v1,v2);
system("pause"); //防闪退
}

语法没错,编译通过了,但结果不对,无论输什么都是

求解。。。
。。。把scanf去了就对了
如下:
#include<stdio.h>
#define PI 3.141592653
int main(){
double r=1.5,h=3,c,s1,s2,v1,v2;
c=2*PI*r;
s1=PI*r*r;
s2=4*PI*r*r;
v1=(4/3)*PI*r*r*r;
v2=s1*h;
printf("圆周长:%7.2f\n圆面积:%7.2f\n圆球表面积:%7.2f\n圆球体积:%7.2f\n圆柱体积:%7.2f\n",c,s1,s2,v1,v2);
system("pause");
}

不懂啊。。。为什么。。。哪错了 我大一的,刚学C语言。。。

第1个回答  2012-11-27

#include<stdio.h>

#define PI 3.141592653

int main(){

        double r,h,c,s1,s2,v1,v2;//这边的double改成float就行

    printf("请输入圆半径,圆柱高:");

    scanf("%f,%f",&r,&h);

    c=2*PI*r;

    s1=PI*r*r;

    s2=4*PI*r*r;

    v1=(4/3)*PI*r*r*r;

    v2=s1*h;

    printf("圆周长:%7.2f\n圆面积:%7.2f\n圆球表面积:%7.2f\n圆球体积:%7.2f\n圆柱体积:%7.2f\n",c,s1,s2,v1,v2);

    system("pause");           //防闪退

}

如上,不懂再问

第2个回答  2012-11-27
#include<stdio.h>
#define PI 3.141592653
int main()
{
double r,h,c,s1,s2,v1,v2;
printf("请输入圆半径,圆柱高:");
scanf("%lf,%lf",&r,&h);
c=2*PI*r;
s1=PI*r*r;
s2=4*PI*r*r;
v1=(4/3)*PI*r*r*r;
v2=PI*r*r*h;
printf("圆周长:%7.2f\n圆面积:%7.2f\n圆球表面积:%7.2f\n圆球体积:%7.2f\n圆柱体积:%7.2f\n",c,s1,s2,v1,v1);

return 0;
}
第3个回答  2012-11-27
double 要用%lf 读 要么你把double 改成float

要么改这个

scanf("%lf,%lf",&r,&h);
printf("圆周长:%7.2lf\n圆面积:%7.2lf\n圆球表面积:%7.2lf\n圆球体积:%7.2lf\n圆柱体积:%7.2lf\n",c,s1,s2,v1,v2);
第4个回答  2012-11-27
scanf("%f,%f",&r,&h);

换成
scanf("%lf,%lf",&r,&h);

试试 lf 是double对应的输入输出 LF
第5个回答  2012-11-27
scanf("%lf,%lf",&r,&h);//double类型对应用%lf,尤其是在sanf中,问题尤为明显,printf中也就算了本回答被提问者采纳
相似回答