循环数组赋值的C++实现。退货
我试图生成LIMIT,比如LIMIT=1000个素数,并将它们存储到一个数组中,但我得到了返回的垃圾。这是我的密码:循环数组赋值的C++实现。退货,c++,C++,我试图生成LIMIT,比如LIMIT=1000个素数,并将它们存储到一个数组中,但我得到了返回的垃圾。这是我的密码: #include <iostream> using namespace std; void prime_num(int); int main() { int primes[1000]; int n, p, t, LIMIT = 1000; for(n=2; n <= LIMIT; n++) { t=0;
#include <iostream>
using namespace std;
void prime_num(int);
int main()
{
int primes[1000];
int n, p, t, LIMIT = 1000;
for(n=2; n <= LIMIT; n++)
{
t=0;
for(p=2; p <= n/2; p++)
{
if (n%p == 0)
{
t = 1;
break;
}
}
if(!t)
primes[p-2] = n;
}
for (int i = 0; i < LIMIT; i++)
cout << primes[i] <<" ";
return 0;
}
在外部循环外定义一个变量:
int count=0;
然后在这里使用它:
primes[count++] = n;
然后打印为:
for (int i = 0; i < count; i++)
cout << primes[i] <<" ";
is_素数的正确性和优化:
现在你决定is_素数的正确性。写得对吗?它优化了吗?是否确实需要检查[2,n/2]范围内的所有整数?在外部循环外定义一个变量:
int count=0;
然后在这里使用它:
primes[count++] = n;
然后打印为:
for (int i = 0; i < count; i++)
cout << primes[i] <<" ";
is_素数的正确性和优化:
现在你决定is_素数的正确性。写得对吗?它优化了吗?您真的需要检查[2,n/2]范围内的所有整数吗?我首先将其分解为一些可以理解的部分。在prime_num的原型中,您似乎已经考虑到了这一点,但似乎没有贯彻到底。我也会把它改成类似bool isprimeint的东西;它返回一个布尔值来指示一个特定的数字是否为素数。我想你们应该找到小于或等于极限的素数;找不到极限素数。我会先把它分解成一些可以理解的片段。在prime_num的原型中,您似乎已经考虑到了这一点,但似乎没有贯彻到底。我也会把它改成类似bool isprimeint的东西;它返回一个布尔值来指示一个特定的数字是否为素数。我想你们应该找到小于或等于极限的素数;没有找到极限素数。在你的最后一个循环中,我是计数而不是极限。非常感谢。有没有一种更简洁的方法来做我想做的事?@user1293973:自己想想,自己试试-在最后一个循环中,我是计数而不是极限。非常感谢。有没有一种更简洁的方法来做我想做的事?@user1293973:自己想想,自己试试-