【问题标题】:Solve Function is not Working in Follwing Program解决函数在以下程序中不起作用
【发布时间】: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 &amp; terms, int deg[], int coef[]) 是解决办法。

标签: c++ arrays loops


【解决方案1】:

正确的解决方案
感谢@drescherjm

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++)
    {
        int calc;
        result = pow(variable,deg[i]);
        calc = result * coef[i];
        sum = sum + calc;
    }
    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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2011-04-30
    • 1970-01-01
    相关资源
    最近更新 更多