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