输出上的随机数 我是一个C++初学者,目前正在学习如何做函数。最近,我收到了以下练习: #include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { int a,sum=0; cout<<"Enter a number:"; cin>>a; int func(int x); sum=func (a ); cout<<"\n"<<sum; } int func(int a) { int x; for (int i=0; i<=a; i++) { x+=i; } return x; } #包括 #包括 使用名称空间std; int main(int argc,char*argv[]) { int a,和=0; 库塔; int func(int x); sum=func(a); cout
输出上的随机数 我是一个C++初学者,目前正在学习如何做函数。最近,我收到了以下练习: #include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { int a,sum=0; cout<<"Enter a number:"; cin>>a; int func(int x); sum=func (a ); cout<<"\n"<<sum; } int func(int a) { int x; for (int i=0; i<=a; i++) { x+=i; } return x; } #包括 #包括 使用名称空间std; int main(int argc,char*argv[]) { int a,和=0; 库塔; int func(int x); sum=func(a); cout,c++,function,C++,Function,int x未初始化。因此会导致未定义的行为(这就是为什么会有随机数)。您必须使用以下其中一种进行初始化: int x=0; int x(0); int x{0}; 必须在func body中初始化x 错误: int func(int a) { int x = 0; //updated statement for (int i=0; i<=a; i++) { x+=i; } return x; } int x未
int x
未初始化。因此会导致未定义的行为(这就是为什么会有随机数)。您必须使用以下其中一种进行初始化:
int x=0;
int x(0);
int x{0};
必须在func body中初始化x
错误:
int func(int a)
{
int x = 0; //updated statement
for (int i=0; i<=a; i++)
{
x+=i;
}
return x;
}
int x
未初始化,因此它将导致出现错误,x
将给出任何随机值,而不是正确的总和
可能的解决方案:
int func(int a)
{
int x = 0; //updated statement
for (int i=0; i<=a; i++)
{
x+=i;
}
return x;
}
在对变量x
进行任何增量之前,请将其初始化为零,以确保它仅包含要存储的值
更新代码:
int func(int a)
{
int x = 0; //updated statement
for (int i=0; i<=a; i++)
{
x+=i;
}
return x;
}
int func(int a)
{
int x=0;//更新的语句
for(int i=0;iint x{0};//此语句只能在c++11中使用。此外,它不允许缩小。非常感谢Itban。我添加了“=0”后,问题就解决了。这是我方面的一个非常不幸的错误,因为我没有注意到代码中的谬误。无论我如何称赞您构建的解决方案,它都非常清晰简洁。欢迎@Noir:)我只是试图提供一个清晰的解决方案