自考西方政治制度重点:不好意思,又是我来问基础C语言问题了。。。

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 06:38:41
请问为什么运行如下代码出不来 结果呢?
要怎么改进呢?谢谢大家。

#include <stdio.h>
void main()
{float r=1.5,h=3,PI=3.1415927,c,s,bs,bv,v;
scanf ("%f,%f,%f",&r,&h,&PI);
c=2*PI*r;
s=PI*r*r;
bs=4*PI*r*r;
bv=4/3*PI*r*r;
v=PI*r*r*h;
printf ("圆周长=%.2f\n圆面积=%.2f\n圆表面积=%.2f\n圆球体积=%.2f\n圆柱体积=%.2f\n",c,s,bs,bv,v);
}

#include <stdio.h>
void main()
{float r=1.5,h=3,PI=3.1415927,c,s,bs,bv,v;
【scanf ("%f,%f,%f",&r,&h,&PI);】//←删除此行代码,即可正常运行。因为r,h和PI都已经在前面附值,不需要再读入数据了!
c=2*PI*r;
s=PI*r*r;
bs=4*PI*r*r;
bv=4/3*PI*r*r;
v=PI*r*r*h;
printf ("圆周长=%.2f\n圆面积=%.2f\n圆表面积=%.2f\n圆球体积=%.2f\n圆柱体积=%.2f\n",c,s,bs,bv,v);
}
不过,以上程序的灵活性仍旧不太好。因为R和H的值没有办法改变,建议用以下程序实现:
#include <stdio.h>
void main()
{float r,h,PI=3.1415927,c,s,bs,bv,v;
printf("请输入r的值:");
scanf("%f",&r);
printf("\n请输入h的值:");
scanf("%f",&h);
c=2*PI*r;
s=PI*r*r;
bs=4*PI*r*r;
bv=4/3*PI*r*r;
v=PI*r*r*h;
printf ("圆周长=%.2f\n圆面积=%.2f\n圆表面积=%.2f\n圆球体积=%.2f\n圆柱体积=%.2f\n",c,s,bs,bv,v);
}

灵活性,还可以考虑重用哈
那这么写
#include <stdio.h>
const int PI=3.1415927;
int get_c(int& r)
{
return 2*PI*r;
}
void main()
{float r,h,c,s,bs,bv,v;
printf("请输入r的值:");
scanf("%f",&r);
printf("\n请输入h的值:");
scanf("%f",&h);
c=get_c(r);
/*
``````
*/
printf ("圆周长=%.2f\n圆面积=%.2f\n圆表面积=%.2f\n圆球体积=%.2f\n圆柱体积=%.2f\n",c,s,bs,bv,v);
}