wsjwxwsjwx 2017-03-01 01:54 采纳率: 0%
浏览 884

c++程序运行中出现的问题

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
{ const int n=3;
const int m=3;
double fitness[3];
//从FT06.txt读入machine sequence
ifstream infile;
infile.open("FT031.txt",ios::in);
if(!infile) cout<<"error"< int t1;
//存入数组
// cout int Machine_sequence[n][m];//MS[n][m]代表 Machine sequence
int*p=&Machine_sequence[0][0];
while(infile>>t1) //遇到空白符结束
{
*p=t1;
p++;
}
infile.close();

ifstream ifile;
ifile.open("FT032.txt",ios::in);
if(!ifile) cout<<"error"<<endl;
int t2;

//存入数组
// cout<<"存入数组"< int Operation_time[n][m];//MS[n][m]代表 Machine sequence
int*q=&Operation_time[0][0];
while(ifile>>t2) //遇到空白符结束
{
*q=t2;
q++;
}
ifile.close();
cout<<"输出操作顺序矩阵"<<endl;
for(int i=0;i<3;i++)
{

for (int j=0;j<3;j++)
{ 
    cout<<Machine_sequence[i][j]<<" ";


}
cout<<endl;
}
cout<<"输出时间矩阵"<<endl;
for(int i=0;i<3;i++)
{

for (int j=0;j<3;j++)
{ 
    cout<<Operation_time[i][j]<<" ";


}
cout<<endl;

}


int sequence[3][9]={3,2,1,3,2,2,1,3,1,1,2,3,2,3,1,1,2,3,1,1,2,1,2,3,3,2,3};
 for (int i=0;i<3;i++)
{   int a[n]={0};      //用来计算工件的第几个工序  参见论文《基于遗传算法的多目标车间调度问题的研究》第三章
    double tj[m]={0};   //某个机器最近空闲时间点
    double  ti[n][m]={0};//工件i的第j道工序完成时间
    for(int j=0;j<9;j++)
    {    if(a[sequence[i][j]-1]==0)
        { ti[sequence[i][j]-1][a[sequence[i][j]-1]]=tj[Machine_sequence[sequence[i][j]-1][a[sequence[i][j]-1]]]+Operation_time[sequence[i][j]-1][a[sequence[i][j]-1]];
        tj[Machine_sequence[sequence[i][j]-1][a[sequence[i][j]-1]]]=ti[sequence[i][j]-1][a[sequence[i][j]]-1]];
    a[sequence[i][j]-1]=a[sequence[i][j]-1]+1;//记录是第几道工序
    }
    else
        {if(ti[sequence[i][j]]-1][a[sequence[i][j]-1]-1]>tj[Machine _sequence[sequence[i][j]-1][a[sequence[i][j]-1]])

        //{ti[sequence[i][j]-1][a[sequence[i][j]-1]]=max(ti[sequence[i][j]]-1][a[sequence[i][j]-1]-1],tj[Machine_sequence[sequence[i][j]-1][a[sequence[i][j]-1]])+Operation_time[sequence[i][j]-1][a[sequence[i][j]-1]];//这一行有问题
        ti[sequence[i][j]-1][a[sequence[i][j]-1]]=ti[sequence[i][j]]-1][a[sequence[i][j]-1]-1]+Operation_time[sequence[i][j]-1][a[sequence[i][j]-1]];
        else
        {ti[sequence[i][j]-1][a[sequence[i][j]-1]]=tj[Machine_sequence[sequence[i][j]-1][a[sequence[i][j]-1]]+Operation_time[sequence[i][j]-1][a[sequence[i][j]-1]];}
        tj[Machine_sequence[sequence[i][j]-1][a[sequence[i][j]-1]]]=ti[sequence[i][j]-1][a[sequence[i][j]]-1]];//有问题
        a[sequence[i][j]-1]=a[sequence[i][j]-1]+1;
    }
    }

    double x=tj[0];
     int k=1;
     while(k<m)
     {
         if(tj[k]>x)
             x=tj[k];
             k++;
     }
    fitness[i]=x;
 }
return 0;

}

  • 写回答

4条回答 默认 最新

  • wsjwxwsjwx 2017-03-01 01:55
    关注

    不知道有啥问题,编译不通过啊

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料