程序编译、链接无误,但就是运行出错。哪位帮我瞧瞧?先行谢过!
#include<math.h>
#include<conio.h>
#include<iostream>
using namespace std;
void process(int a[2000001],long n);
void decision(int a[2000001]);
void output(int a[2000001],long n);
void display();
void main()
{
int i,j,a[2000001];
long n;
display();
decision(a);
}
void display()
{
cout<<"**********************************************************"<<'\n';
cout<<" 油灯问题 "<<'\n';
cout<<"说明:"<<'\n';
cout<<"1、输入的油灯数在1-2000000之间;"<<'\n';
cout<<"2、0代表输入结束;"<<'\n';
cout<<"3、-1代表退出系统"<<'\n';
cout<<"**********************************************************\n";
cout<<"请输入油灯数,可以输入多个,以空格键隔开,最后回车:"<<'\n';
}
void decision(int a[2000001])
{
int i,j;
long n;
while(1)
{
cin>>n;
if(n==0||n==-1)
break;
process(a,n);
}
getchar();
if(n==0)
main();
}
void process(int a[2000001],long n)
{
int i,j,count=0;
for(i=1;i<=n;i++)
a[i]=0;
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j+=i)
{
a[j]=(a[j]+1)%2;
}
}
output(a,n);
}
void output(int a[2000001],long n)
{
int i,count=0;
i=1;
if(a[i++]==1)
{cout<<i-1;count++;}
while(i<=n)
if(a[i++]==1)
{
cout<<",";
cout<<i-1;
count++;
}
cout<<count<<'\n';
}
[解决办法]
- C/C++ code
void decision(int a[2000001]){int i,j;long n;while(1){cin>>n;if(n==0||n==-1)break;process(a,n);}getchar();if(n==0)main(); //?????????}
[解决办法]
改
void process(int a[2000001],long n);
void decision(int a[2000001]);
void output(int a[2000001],long n);
为
void process(int *a,long n);
void decision(int *a);
void output(int *a,long n);
同样:
void main()
{
int i,j,a[2000001];
改为:
void main()
{
int i,j,*a;
a = new int[2000001];
...
其它你试一下。