中国杀手排行榜前十:关于全局变量

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/12 18:21:27
如何将以下程序中的t,m,n改为局部变量??
#include<iostream>
#include<math.h>
using namespace std;
int t=0,m,n;//m为运行程序段个数,n is程序个数,t表示正在运行的某个程序的某个时间段
class Pro
{
public:Pro::Pro(){
a=new int[m];
for(int i=0;i<m;i++)
a[i]=rand()%4;
b=new char[m*n*n];//考虑每段程序最大运行单位所要开辟空间为m*n*n
}

void run(int i,int j){
if(a[i]>0)//判断 某个程序的此次运行是否结束,也就是a[i]=0
{b[t++]='-';// 正在运行某个程序的某个时间段打上标记
a[i]--;//某个程序的此次运行数目-1
run(i,j);
}
}

void blankAndprint(){
for(int i=0;i<t;i++)
{
if(b[i]!='-') b[i]='\0';//将不在运行的程序的每个单位上打上空格
cout<<b[i];
}
}

private:int *a;char *b;//a数组为对象也就是每个程序的某次运行将有几个单位时间组成
//b数组记录程序在全过程中的运行状况
};

int main()
{
cin>>n;
cin>>m;
Pro *Prog;
Prog=new Pro[n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
Prog[j].run(i,j);
for(int k=0;k<n;k++)
{
Prog[k].blankAndprint();
cout<<endl;
}
return 1;
}

把变量放到你需要的函数中
就始局部变量

这个不能用局部变量
main和class里都要用到m,n
只能用全局变量:>