有关C语言的简单问题?

来源:百度知道 编辑:UC知道 时间:2024/07/08 19:34:31
#include <stdio.h>
void main()
{
double r,h,v,pi=3.14;
printf("请输入圆锥体的高和底面半径:");
scanf("%lf%lf",&r,&h);
v=(1/3)*(pi*r*r*h);
printf("r=%lf,\nh=%lf,\v=%lf\n",r,h,v);
}

哦..就这啦! 有错吗?(就这个格式与思路,不管字)
错在哪里? 正确的给出(必要可讲解一下)
好象是最后输出v的值是0???
请高手指点!
(我朋友的问题,兄弟我给他高分问,高手说话啊!!!!)

你的思路是对的,但是在下面公式那个1/3的地方计算机好像把这个式子等于0了,所以结果不正确,改成下面的,就不会出错了。
#include <stdio.h>
#include <conio.h>
main()
{
double r,h,v,pi=3.14;
printf("PLease input h,r:");
scanf("%lf,%lf",&r,&h);
v=pi*r*r*h/3;
printf("r=%lf\nh=%lf\nv=%lf\n",r,h,v);
getch();
}
这样写也对:
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
double r,h,v,pi=3.14;
float a;
a=(float)1/3; /*a=1.0/3.0;*/
printf("a=%f\n",a);
printf("PLease input r,h:");
scanf("%lf,%lf",&r,&h);
v=a*(pi*r*r*h);
printf("r=%lf\nh=%lf\nv=%lf\n",r,h,v);
getch();
}
就是用1/3一定要输出小数,需要强制类型为float型就可以了,所以有那个a=(float)1/3;

#include<stdio.h>
#define PI 3.14
void main()
{
float r,h,v;
printf("请输入圆锥体的高和底面半径:");