【发布时间】:2021-03-24 15:04:58
【问题描述】:
我的 Solve 函数不起作用,我不知道我的代码有什么问题。 任何形式的帮助将不胜感激。
程序所需的输出: 求解:此函数将一个多项式和一个变量作为输入。它将解决 给定变量值的多项式并将返回计算结果。
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
void Input(int terms, int deg[], int coef[])
{
int temp = 0;
cout << "Enter Terms = ";
cin >> terms;
cout << "Enter Degrees in Descending Order = ";
for (int i = 0; i < terms; i++)
{
cin >> deg[i];
int temp = deg[i];
if (deg[i] > 15)
{
cout << "Enter the Degree again (must be less tham 15) = ";
cin >> deg[i];
}
}
cout << endl;
for (int i = 0; i < terms; i++)
{
for (int i = 0; i < terms; i++)
{
if (deg[i] < deg[i+1])
{
temp = deg[i];
deg[i] = deg[i+1];
deg[i+1] = temp;
}
}
}
cout << "Enter Coefficients = ";
for (int i = 0; i < terms; i++)
{
cin >> coef[i];
}
}
int Solve(int terms, int deg[], int coef[], int variable)
{
int sum = 0;
int result;
cout << "Enter Variable = ";
cin >> variable;
Input(terms, deg, coef);
for (int i = 0; i < terms; i++)
{
result = pow(variable,deg[i]);
sum = result * coef[i];
sum = sum + result;
cout << result;
}
cout << sum << endl;
return sum;
}
int main()
{
int terms = 0;
int deg[5] = {0,0,0,0,0};
int coef[5] = {0,0,0,0,0};
int var = 0;
Solve(terms, deg, coef, var);
}
输出我是,得到:
Enter Variable = 2
Enter Terms = 3
Enter Degrees in Descending Order = 3 2 1
Enter Coefficients = 2 2 2
0
【问题讨论】:
-
在
Solve()中看起来变量terms始终为0,因为您将它按值传递给Input() -
任何可能的解决方案?
-
按引用而不是按值传递。请记住,按值传递会将变量的副本传递给函数。
-
好的。让我试试。谢谢老哥
-
如果你不知道
void Input(int & terms, int deg[], int coef[])是解决办法。