#include<iostream>
using namespace std;
struct box{
int number;
int weight;
};
void Sort(int n,struct box *w)
{
for(int i=0;i<n;i++)
{
for(int j=i;j<n;j++)
{
if(w[i].weight>w[j].weight)
{
struct box t=w[i];
w[i]=w[j];
w[j]=t;
}
}
}
}
void Print(int n,struct box w[])
{
for(int i=0;i<n;i++)
{
cout<<w[i].number<<" "<<w[i].weight<<endl;
}
}
int Loading(int n,struct box w[],bool a[],int weight)
{
int count0=0;
for(int i=0;i<n;i++)
{
if(weight>=w[i].weight)
{
weight-=w[i].weight;
a[w[i].number]=true;
count0++;
}
}
return count0;
}
int main()
{
int n;cout<<"箱子个数:";
cin>>n;
int weight;cout<<"重量限制:";
cin>>weight;
struct box w[n];
cout<<"n个箱子的重量:";
for(int i=0;i<n;i++)
{
w[i].number=i+1;
cin>>w[i].weight;
}
cout<<"将n个箱子按重量从小到大排序:"<<endl;
Sort(n,w);
Print(n,w);
bool a[n];
for(int i=0;i<n;i++)
a[i]=false;
cout<<"可装入个数:";
cout<<Loading(n,w,a,weight)<<endl;
cout<<"装入的序号:";
for(int i=0;i<n;i++)
{
if(a[i]==true)
cout<<i<<" ";
}
return 0;
}
最优装载问题
最新推荐文章于 2024-09-26 08:51:10 发布