C++程序问题,求圆柱的面积和体积

完成下面的程序。
编程:编写一个程序从键盘输入圆柱体的半径r和高度h,计算其底面积和体积。
分析:已知半径r和高度h,依据圆面积的计算公式S = π*r*r 和圆柱体体积计算公式V= π*r*r*h,可计算其底面积S和体积V。
不完整程序如下。调试时,应先将下划线位置改写成正确的参数或表达式。

/*sy2_1.c*/
#include<stdio.h>
int main()
{
float pi=3.1415926F;
float r,h,S,V;
printf("Please input r,h:");
scanf("%f,_____",&r,______ ); /*键盘输入圆半径r和高度h*/
S=_________; /*计算圆面积S的值*/
V=_____________; /*计算圆柱体体积V的值*/
printf("S= \n",S);
printf("V= \n",V);
return 0;
}
哪错了,详细点,还有把正确的告诉我下,谢谢了

圆的底面积公式:3.14乘以r的平方
圆柱体的体积:圆的面积乘以高
圆的底面积(sa) 圆柱体的体积(va)
所以
#include <stdio.h>
int main (void)
{
float r,h,sa,va;
scabf ("%f,%f",&r,&h);
sa=3.14*r*r;
va=sa*h;
printf("圆面积Sa=%5.2f\n圆柱体体积Va=%5.2f\n",sa,va);
return 0
}
我这里的%5.2f,你也可以写成%f,不过是为了精确了两位小数而已;
你自己写你没必要分两次输出S跟V,可以在一起输出,
你写的没错啊,你把公式带进去就可以啊 ,
你的float =3.14就可以啦。不要后面的有效数是7位,写多了也没用啊。
你的空格上写 %f &h 3.14*r*r s*h %5.2f %5.2f就可以了
我也是自学的,希望能帮助到你追问

%f是什么意思?还有什么是单精度字符,以及scanf

追答

%f 是用来输出字符的(包括单 双)都用他定义
可以用int 但是最后精确度低,如果把float 改成int 后面的%f就要该成整形int
(%f定义是实数,像0.112,2.14,2.44,是有小数的,你的pai,是小数啊,你用int定义就把pai变成3而不是3.14了;不过你的高,半斤可以用int)
scanf 是c的标准输入函数啊
scanf 是用来输入数据的,你不输入数据怎么知道你的半径跟搞是多少啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-13
#include<stdio.h>
int main()
{
float pi=3.1415926F;
float r,h,S,V;
printf("Please input r,h:");
scanf("%f,%f",&r,&h ); /*键盘输入圆半径r和高度h*/
S=pi*r*r; /*计算圆面积S的值*/
V=pi*r*r*h; /*计算圆柱体体积V的值*/
printf("S=%f\n",S);
printf("V=%f\n",V);
return 0;
}
第2个回答  2011-10-13
// 设计思想:从基类到更复杂的类,逐步增加特征 // 继承、并且重写:与特征有关的方法 // 可以统一用基类指针(集合),来指向不同子类的数据 // 并且让基类提供的接口方法,根据需要具体地生效 // and no more please... #include <iostream> using namespace std; #define PI 3.1415926 class Shape { // 形状 public: virtual void feature()=0; // 显示它的特征 }; class Circle : public Shape { // 圆 public: double dR; // 半径 Circle(double dR_in) { dR = dR_in; } // 构造 void feature() { // 重写 cout<<"圆面积: "<<PI*dR*dR<<endl; } }; class Cylinder : public Circle { // 圆柱 public: double dH; // 高 Cylinder(double dH_in,double dR_in) : Circle(dR_in) { // 构造以及父类构造 dH = dH_in; } void feature() { // 重写 cout<<"圆柱面积: "<<2*PI*dR*(dR+dH)<<endl; cout<<"圆柱体积: "<<PI*dR*dR*dH<<endl; } }; int main() { Shape *s1 = NULL; // 设计一个基类指针 s1 = new Circle(5); s1->feature(); // 指出圆 delete s1; s1 = NULL; s1 = new Cylinder(5,2); s1->feature(); // 指出圆柱 delete s1; s1 = NULL; return 0; } /* 结果:圆面积: 78.5398 圆柱面积: 87.9646 圆柱体积: 62.8319 */你可以试试。可以选择,2011/10/13 12:24:09
第3个回答  2011-10-13
#include<stdio.h>
int main()
{
float pi=3.1415926F;
float r,h,S,V;
printf("Please input r,h:");
scanf("%f,__%f___",&r,___&h___ ); /*键盘输入圆半径r和高度h*/
S=___pi*r*r______; /*计算圆面积S的值*/
V=____s*h_________; /*计算圆柱体体积V的值*/
printf("S= %f \n",S);
printf("V= %f \n",V);
return 0;
}
哪错了,详细点,还有把正确的告诉我下,谢谢了
第4个回答  2011-10-13
scanf("%f%f",&r,&h);
S=pi*r*r;
V=s*h;
printf("S=%f\n",S);
printf("V=%f\n",V);追问

%f是什么,还有为什么用scanf,不用int,请说详细点

追答

%f是格式说明符,表明输出的数据是单精度型的。你定义的变量都是单精度型的,即float,故在标准输出printf语句中用%f格式。如果定义一个int变量,它的格式则为%d。C语言基本类型都有各自的格式说明符,具体可以查看相关C语言书籍。 printf("Please input r,h:");这个提示让输入r,h,scanf是一个标准输入函数,故此处用scanf语句。

相似回答