使用用户定义的函数查找数字的幂时出现问题
Issue in finding power of a number using user defined functions
我的代码以及输出
以下代码不起作用。它没有错误,我认为在逻辑上犯了一些错误。我想使用函数找到数字的幂。如何使此代码工作?
代码:
#include<iostream>
using namespace std;
int pow(int);
int main()
{
int x,p,ans;
cout<<"Enter a number";
cin>>x;
cout<<"Enter the power of the number";
cin>>p;
ans=pow(x);
cout<<ans;
return 0;
}
int pow(int)
{
int a=1,i,p,x;
for(i=0;i<=p;i++)
{
a=a*x;
}
return a;
}
这是工作代码:
#include<iostream>
using namespace std;
int pow(int, int);
int main()
{
int x,p,ans;
cout<<"Enter a number";
cin>>x;
cout<<"Enter the power of the number";
cin>>p;
ans=pow(x, p);
cout<<ans;
return 0;
}
int pow(int x, int p)
{
int a=1,i;
for(i=0;i<=p;i++)
{
a=a*x;
}
return a;
}
艾德酮
您必须将局部变量传递到函数中,而不是定义具有相同名称的新变量。您正在执行的操作应该为您提供有关未使用变量(x
和p
main
(的警告,并且由于对那里定义的变量的未初始化读取,它还会在pow
中调用未定义的行为。
你的功能也错了。你只是将 1 乘以一个值很多次,它永远保持 1。
您的函数必须指定参数名称(而不仅仅是类型(:
int pow(int) -> int pow(int b, int p)
您迭代一次超过必要的次数:
for (i = 0; i <= p; i++) -> for (i = 0; i < p; i++)
您可以缩短一些算术运算:
a=a*x -> a *= x;
最后一个函数:
int pow(int b, int p)
{
int a = 1, i;
for (i = 0; i < p; i++)
a *= b;
return a;
}
您可以通过传递预先声明的变量来调用它:
pow(x, p)
所以你的最终代码是这样的:
#include <iostream>
int pow(int b, int p)
{
int a = 1, i;
for (i = 0; i < p; i++)
a *= b;
return a;
}
int main()
{
int x, p, ans;
std::cin >> x >> p;
ans = pow(x, p);
std::cout << ans << std::endl;
return 0;
}
相关文章:
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 输出错误,问题是找到总和5000位数字cpp
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 我的问题是关于C++中数字和序列的重复以及如何打印它们?
- 如何通过使用 2 位或更多数字的 XOR 运算符来执行此操作C++问题
- 在 cpp 中使用较大数字时遇到大数字的问题<iomanip>
- 无法理解代码背后的逻辑,这是在两个给定数字之间生成素数的优化问题
- 数组C++问题中最大和第二大的数字
- 使用用户定义的函数查找数字的幂时出现问题
- C++ - 我在输出时遇到问题,因为我正在收到数字和字母
- C++ 制作一个随机数字/字母生成器,代码中有问题
- 有问题将数字转换为罗马数字
- 使用C ,将转换为char的问题始终具有3位数字
- 优化递归问题以计算超级数字
- 快速读取带有数字 c++ 的二进制文件时出现问题
- 代码问题.使用矢量删除相同的数字,除了它的最后一个入口
- 编程:原理与实践 使用C++ 第 4 章演练步骤 6:关于数字范围的一般问题
- 在C++中使用限制和非常大的数字时出现问题
- 函数以相反的顺序输出输入问题,并改进算法以解释相等的数字