C++动态数组的问题
发布网友
发布时间:2022-05-20 16:30
我来回答
共1个回答
热心网友
时间:2023-11-01 07:50
#include<iostream>
using namespace std;
int main()
{
void gedebahe(int);
int a;
cin>>a;
gedebahe(a);
return 0;
}
void gedebahe(int a)
{
int sushu(int);
int b,p=0,i,j;
for(b=2;b<=a;b++)
{
if(sushu(b))
p++;
}
int*y=new int[p]; //
for(b=2,i=0;b<=a;b++) //
{
if(sushu(b)==1)
{
*(y+i)=b;
i++;
}
}
for(i=0;i<p;i++)
{
for(j=0;j<p;j++)
{
if( a == *(y+i)+*(y+j) ) //
cout<<a<<"="<<*(y+i)<<"+"<<*(y+j)<<endl;
}
}
delete []y;
}
int sushu(int a)
{
int i;
for(i=2;i<a;i++)
{
if(a%i==0)
return 0;
}
return 1;
}
追问谢了,那我的这个哪里不对呢?
还有:有没有更简单的方法了呢?
追答int*y=new int[p]();.//这里不应该有括号!
更简单的方法就是,不用数组!
从2开始,取一个数x,如果是质数,则判断a-x是不是质数,如果是,则输出