C++ 用动态数组 和函数 实现求素数有关问题

C++ 用动态数组 和函数 实现求素数问题

之前自己写了用函数求素数的代码,但现在有了新要求,要求加入动态数组,刚学的新概念,自己修改了下,但一直不对,求解~~



#include "stdafx.h"
#include<iostream>
using namespace std;

void prime(int n);

int main()
{
int n;
  cout << "Enter a number between 13-100:" << endl;
cin >> n;
prime(n);
return 0;
}

void prime(int n)
{
int i,j,l,k=0;
int flag=0;
typedef int * IntPtr;
IntPtr p;
p = new int[k];
for(i=2;i<=n;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
flag=1;
}
{
if(flag==0)
p[k]=i;
k++;
}
for(l=0;l<=k;l++)
cout << p[k]<< endl;
}
}


------解决方案--------------------
int i,j,l,k=0;
p = new int[k]; // k应该是要申请的数组大小,你这个程序应该设成n够了

p = new int[n];

用完记得delete,这个良好习惯
delete []p