gpt4 book ai didi

c++ - 动态数组中的素数

转载 作者:行者123 更新时间:2023-11-28 06:18:13 26 4
gpt4 key购买 nike

我有一个程序可以将所有素数插入数组中的特定数字。计算正确。我的问题是函数参数和我的动态数组到函数的传输。我的函数不会修改我的数组。

请看代码:

#include <iostream>

using namespace std;

int primeinlesen(int *i);
int primarrayspeicherung (int *primarray,int *bis);

int main()
{
int reload=1;
while(reload==1)
{
int bis=0,*primarray,valcounter;
primeinlesen(&bis);
valcounter=primarrayspeicherung(primarray,&bis);
for(int i=0;i<valcounter;i++)
{
cout<<i<<". Primzahl: "<<primarray[i]<<"\n";
}
delete [] primarray;
cout<<"Anzahl Primzahlen: "<<valcounter<<endl;
cout<<"Erneute Berechnung?(Ja(1) oder Nein(0))";
cin>>reload;
}
return 0;
}

int primeinlesen(int *i)
{
cout<<"Bis zu welchem Wert moechten SiePrimzahlen ausgegeben,haben(max.500)";
cin>>*i;
if(*i>500)
{
cout<<"Wert zu hoch...";

}
return 0;
}
int primarrayspeicherung (int *primarray,int *bis)
{
int x,y,counter,e,valcounter=0,xcounter=0,xvalcounter=0,xx,xy,xe;
for(x=2;x<*bis;x++)
{
counter=0;
for(y=2;y<x;y++)
{
e=x%y;
if(e==0)
{
counter++;
}
}
if(counter==0)
{
valcounter++;
}
}
//ZWEITER DURCHGANG
primarray=new int[valcounter];
for(xx=2;xx<*bis;xx++)
{
xcounter=0;
for(xy=2;xy<xx;xy++)
{
xe=xx%xy;
if(xe==0)
{
xcounter++;
}
}
if(xcounter==0)
{
primarray[xvalcounter]=xx;
xvalcounter++;
}

}
return valcounter;
}

最好的问候

最佳答案

在这个函数中:

int primarrayspeicherung (int *primarray,int *bis)

primarray 是局部变量。您对它所做的一切(例如分配、赋值)只会影响本地 primarray,而不是您传入的那个。如果您想修改两者,您需要传入引用:

int primarrayspeicherung (int*& primarray,int *bis)

关于c++ - 动态数组中的素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29826644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com