0
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>

using namespace std;


struct sphere_t  { float radius; }; sphere_t sph = { 5.8 };

void SphereDescription(sphere_t &sph) {     cout << "Sphere's
description: "; cin >> sph.radius; }


double SphereSurfaceArea(const sphere_t &sph) {     return
4*M_PI*sph.radius*sph.radius;  }

double SphereVolume(const sphere_t &sph) {  return
4.0/3.0*M_PI*sph.radius*sph.radius*sph.radius; }

//the volume and surface area of cylinder 

struct cylinder_t { float
radius ; float height ; }; cylinder_t cylr,cylh = { 6.6,1.3 };


double SurfaceAreaCylinder(const cylinder_t &cylr,const cylinder_t&cylh)
{   return (2*M_PI*cylr.radius)*2 +2*M_PI*cylr.radius*cylh.height; }

double CylinderVolume(const cylinder_t &cylr,const cylinder_t &cylh) {  return 2*M_PI*cylr.radius*cylr.radius*cylh.height; }


int main() { cout << "Sphere's description radius: " << sph.radius << endl; cout << "Surface Area: " << SphereSurfaceArea(sph) << endl; cout << "Volume :" << SphereVolume(sph) << endl;

cout << "Cylinder's description radius: " << cylr.radius << endl; cout << "Cylinder's description height: " << cylh.height << endl; cout << "Surface Area: " << SurfaceAreaCylinder(cylr,cylh) << endl; cout << "Volume :" << CylinderVolume(cylr,cylh) << endl;

system("pause");   return(0); }

//出力

Sphere's description radius: 5.8

Surface Area: 422.733

Volume : 817.283

Cylinder's description radius: 0

Cylinder's description height: 1.3

Surface Area: 0 

Volume : 0

半径、SA、ボリュームで出力がゼロになるのはなぜですか?

4

2 に答える 2

0

あなたのコードには次のような問題があります。フロートの高さ; }; シリンダー_t cylr、cylh = { 6.6,1.3 };

ここでは、2 つの構造体変数を宣言しています (そうするつもりでしたか?) cylh のみが値 (6.6 , 1.3) で初期化され、 cylr は初期化されていません

そのため、cylh.height は 1.3 を返します (初期化されているため) が、cylr.radius は初期化されていないため 0 を返します..この問題により、他の値が 0 になります。

于 2013-04-04T02:19:26.340 に答える