我的程序使用公式S = 0.5 * a * b * sin(A)计算用户输入的三角形的平方(A是a和b之间的角度)。程序做得对,但我想知道如何添加新函数,然后在for循环中调用它。我想要创建的函数应该包含这两行代码。问题是我不知道如何编写一个返回多个值的函数,而不只是一个。
cout<<"Enter triangle"<<endl;
cin>>a>>b>>angle;
程序的源代码是:
#include <iostream>
#include <math.h>
using namespace std;
double calc(double A, double B, double Angle);
void printResults(double square, double max_square);
int main()
{
int i, n;
double a, b, angle, square, max_square = 0;
cout<<"How many triangles do you want to enter?"<<endl;
cin>> n;
for(i=1; i<=n; i++)
{
cout<<"Enter triangle"<<endl; // so I want to call my own function here
cin>>a>>b>>angle; // the body of function should contain these 2 lines
square = calc(a,b,angle);
if (square > max_square)
max_square = square;
printResults(square, max_square);
}
return 0;
}
double calc(double A, double B, double Angle)
{
double s, s_max = 0;
s = 0.5 * A * B * sin(Angle);
return s;
}
void printResults(double square, double max_square)
{
cout<<"------------------------\nCurrent square is"<<square<<endl;
cout<<"Maximum square is"<<max_square<<"\n------------------------\n";
return;
}
答案 0 :(得分:1)
使用参考参数:
void readTriangle(double ¶m_a, double ¶m_b, double ¶m_angle) {
cout<<"Enter triangle"<<endl;
cin>>param_a>>param_b>>param_angle;
}
然后你的循环可以使用:
readTriangle(a, b, angle);
您也可以使用指针进行操作:
void readTriangle(double *a_ptr, double *b_ptr, double *angle_ptr) {
cout<<"Enter triangle"<<endl;
cin>>*a_ptr>>*b_ptr>>&angle_ptr;
}
你称之为:
readTriangle(&a, &b, &angle);
第二个版本稍微冗长一点,但它更清楚地说明了这些参数是否会被覆盖。