私の教授はcalculateAreaの "area"をchar/stringとして出力したいと思っています。私は彼が何を意味するかは分かりませんが、多分あなたの何人かが理解できるかもしれません。文字列ストリーム(char *)を返す
#include <iostream>
#include "math.h"
#include <cmath>
#include <sstream>
#include <string>
using namespace std;
const char& calculateArea(double diameter, double chord)
{
double length_1, length_2, angle; //This creates variables used by the formula.
angle = acos((0.5 * chord)/(0.5 * diameter)); //This calculates the angle, theta, in radians.
cout << "Angle: " << (angle * 180)/3.14159 << "\n"; //This code displays the angle, currently in radians, in degrees.
length_1 = (sin(angle)) * 6; //This finds the side of the triangle, x.
cout << "X: " << length_1 << " inches "<< "\n"; //This code displays the length of 'x'.
length_2 = (0.5 * diameter) - length_1; /*This code finds the length of 'h', by subtracting 'x' from the radius (which is half the diameter).*/
cout << "h: " << length_2 << " inches" << "\n"; //This code displays the length of 'h'.
double area = ((2.0/3.0) * (chord * length_2)) + ((pow(length_2, 3)/(2 * chord))); /*This code calculates the area of the slice.*/
ostringstream oss;
oss << "The area is: "<< area << " inches";
string aStr = oss.str();
cout << "Debug: "<< aStr.c_str() << "\n";
const char *tStr = aStr.c_str();
cout << "Debug: " << tStr << "\n";
return *tStr;
//This returns the area as a double.
}
int main(int argc, char *argv[]) {
double dia, cho; //Variables to store the user's input.
cout << "What is your diameter? "; //
cin >> dia; // This code asks the user to input the diameter & chord. The function will calculate
cout << "What is your chord? "; // the area of the slice.
cin >> cho; //
const char AreaPrint = calculateArea(dia, cho); //Sends the input to the function.
cout << AreaPrint; //Prints out the area.
return 0;
}
私はこのかのように出力を得る:
あなたの直径は何? 12
あなたのコードは何ですか? 10
角度:33.5573
X:3.31662インチ
H:2.68338インチ
デバッグ:領域である:18.8553インチ
デバッグ:領域である:18.8553インチ
t
tStrが指す文字列を返す方法を理解する必要があります。私が言っているものが得られなかったら、申し訳ありませんが、教授が何を求めているのかは分かりません。
なぜだけではなく、文字列自体を返しますか? –
彼は文字列を返すように求めるのですか?私は関数から 'double'を返すことを望んでいると思います。 'main()'関数で使用します。 –
ええ、私はそれを行う方法を考え出しました(二重で、文字列を返します)。文字列とすべてを返すが、それを割り当てたときにconst char *について何かがあった。だから、私は彼がそういうことを望んでいたと思っています。 –