c++求助01

lanseyuxiao 2012-10-27 09:41:49
//这个程序不出结果啊???求解释。
//一个作业必须要先在印刷车间印刷,再到装订车间装订,
//怎样安排加工任务的加工工序,使得加工总工时最少
#include<iostream>
using namespace std;
int job[100][3],x[100],bestx[100],n,f1=0,bestf,f2[100]={0};
void trytry(int);void swap(int,int);
int main()
{int i,j,n;
cout<<"请输入作业的个数:";cin>>n;
cout<<"请依次输入这"<<n<<"个作业在印刷车间的加工时间:";
for(j=1;j<=n;j++)
cin>>job[j][1];
cout<<"请依次输入这"<<n<<"个作业在装订车间的加工时间:";
for(j=1;j<=n;j++)
cin>>job[j][2];
bestf=32767;
for(i=1;i<=n;i++)
x[i]=i;
trytry(1);
cout<<"加工顺序如下:"<<endl;
for(i=1;i<=n;i++)
cout<<bestx[i]<<" ";
cout<<endl<<"最少加工时间为:"<<bestf<<endl;
return 0;
}
void trytry(int i)
{int j;
if(i==n+1)
{for(j=1;j<=n;j++)
bestx[j]=x[j];
bestf=f2[i-1];
}
else
for(j=i;j<=n;j++)
{f1=f1+job[x[j]][1];
if(f2[i-1]>f1)f2[i]=f2[i-1]+job[x[j]][2];
else f2[i]=f1+job[x[j]][2];
if(f2[i]<bestf)
{swap(x[i],x[j]);
trytry(i+1);
swap(x[i],x[j]);
}
f1=f1-job[x[j]][1];
}
}
void swap(int t1,int t2)
{int t;
t=t1;t1=t2;t2=t;
}
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongwenjun 2012-10-27
  • 打赏
  • 举报
回复
看不懂 算法, 算法没有注解;
swap 标准库里的 std:swap;

算法 自己先画个图吧,数组先定义小点
JiMoKuangXiangQu 2012-10-27
  • 打赏
  • 举报
回复
求人不如求己.
学习编程,基本的调试手段学习不可避免.

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧