读书人

程序编译、链接无误但就是运行出错。

发布时间: 2012-03-05 11:54:02 作者: rapoo

程序编译、链接无误,但就是运行出错。哪位帮我瞧瞧?先行谢过!
#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];
...
其它你试一下。

读书人网 >C++ Builder

热点推荐