c++ - 我应该使用什么条件使我的代码与局部变量一起工作?
问题描述
所以这段代码给了我们素数。但它仅在 inta[1499]
是全局变量时才有效,因为如果数组是全局的,它会自动将所有成员初始化为0
. 如何更改for
-loop 的条件,以便我可以创建a[1499]
一个局部变量并将其移动到函数中main
?
#include <iostream>
using namespace std;
int a[1499];
int main()
{
int PrimeCounter = 0;
int PrimeNumberNeeded = 1500;
bool Isprime;
int TestNumber = 2;
a[0]=2;
while (PrimeCounter != PrimeNumberNeeded)
{
Isprime = true;
for(int x=0; a[x]!= 0; x++)
{
if(TestNumber%a[x] == 0)
{
Isprime = false;
break;
}
}
if (Isprime)
{
a[PrimeCounter] = TestNumber;
PrimeCounter++;
}
TestNumber++;
}
// end of while
if (PrimeCounter == PrimeNumberNeeded)
{
cout << "Prime counter is: " << PrimeCounter << "\nTest number is: "<< a[1499]<< endl;
}
return 0;
}
解决方案
移动a
函数内部的定义并给它一个初始化器:
int a[1499] = {0};
这将第一个元素显式初始化为 0,并将其余元素也隐式初始化为 0。
推荐阅读
- machine-learning - scikit-learn GradientBoostingRegressor 的“init”参数是否定义了基本估计量?
- javascript - AJAX 获取请求按钮
- java - 访问数组的数组内的元素
- spring - jboss eap 错误 org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8 无法转换为 oracle.jdbc.internal.OracleConnection
- java - 如何使用 selenium webdriver 和页面对象模型解决 java.lang.NullPointerException
- java - 无法使用硒(java)单击此按钮
- sql - 具有多个表的数据库查询
- php - 如何使用wordpress url中的变量进行路由?
- python - Python requests-html:使用 cookie 渲染 html
- python - 从 Django 中的数据库获取用户详细信息