C++ 变量未在作用域中声明错误/函数参数太少

C++ 变量未在作用域中声明错误/函数参数太少,c++,function,codeblocks,C++,Function,Codeblocks,我正在编写一个简单的代码,根据用户输入获取一个数字和一个幂,并将数字与幂函数平方。但是,在尝试编译代码时,我遇到了多个错误。代码如下: #include <iostream> using namespace std; double power(double& n1, sq) { for (int i = 0; i < sq; i++) { n1* n1; } return n1; } int main() { doub

我正在编写一个简单的代码,根据用户输入获取一个数字和一个幂,并将数字与幂函数平方。但是,在尝试编译代码时,我遇到了多个错误。代码如下:

#include <iostream>
using namespace std;

double power(double& n1, sq)
{
    for (int i = 0; i < sq; i++) {
        n1* n1;
    }
    return n1;
}

int main()
{
    double power(double&);
    double num1, square;
    cout << "Enter a number IMMEDIATLY: ";
    cin >> num1;
    cout << "\nEnter a power: ";
    cin >> square;
    power();
    cout << num1 << endl;
    return 0;
}
任何关于如何修复这些错误的帮助或说明都将不胜感激,因为我已经被难倒了很长一段时间。谢谢大家!

编辑:所以我将平方解析为int,并将变量初始化为power()(正如你们所说的),但现在代码生成了错误的答案作为输出(任何大于平方的数字都会生成错误的输出)

#包括
使用名称空间std;
双电源(双电源和n1、int和sq){
对于(int i=2;i num1;
方形;
功率(num1,平方);

cout要回答您的第二个问题,只需通过一个示例跟踪代码:

假设输入是

n1 = 3
sq = 3
我们知道
3^3=27
,所以让我们看看是否得到了这个答案

首先,
n1*=n1
运算是将n1自身相乘。仅对平方运算而言,这很好:
3*3=9
。但是,您再次循环它,
n1
现在是9,因此代码将计算
9*9=81

看看你是否能从这里找到答案。提示:你需要另一个变量来存储


另外,您的
return
语句不在
power()
函数的括号内。虽然由于您将
&n1
作为引用传入,因此它可以自行工作。请完全删除return语句,或者在main中创建一个新变量,从power()接收值。如果执行后一种操作,请删除
&
符号,并将返回语句放在幂括号内。要更好地理解按引用传递与按值传递,请参阅。祝您好运!

您需要在此处指定
sq
的类型(如果您确实希望将sq参数传递给函数):
双幂(double&n1,sq)
double-power(double&);
与前面的签名不匹配。
power();
您忘记将1或2个参数传递给
power()
。我说1或2是因为函数签名的不同。你必须先解决这个问题。
sq
可能应该是一个int。
n1*n1;
没有任何作用。你可能是指
n1*=n1;
#include <iostream>

using namespace std;

double power(double& n1, int& sq) {
for (int i=2; i<=sq; i++) {
        n1*=n1;
}
return n1;

}

int main()
{
double power(double& n1, int& sq);
double num1;
int square;
cout << "Enter a number IMMEDIATLY: ";
cin >> num1;
cout << "\nEnter a power: ";
cin >> square;
 power(num1, square);
cout << num1 << endl;
return 0;
}
n1 = 3
sq = 3