欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言 实验7-1-13 装箱问题 (20分)

程序员文章站 2022-06-07 14:37:59
...

C语言 实验7-1-13 装箱问题 (20分)

思路写到注释里啦,

#include<stdio.h>
#define N 1000
int main(void)
{
	int n,i,j,goods[N],box[N]={0};  // goods为货物 , box为箱子(一开始箱子是空的,无货物,所以初值为 0) 
	scanf("%d", &n);
	for (i=1; i<=n; i++)     // 为了方便统计,因此货物和箱子都是从 1开始 ,到等于 n结束 
		scanf("%d", &goods[i]);
	
	int max=0;           // max表示序号最大的箱子 
	for (i=1; i<=n; i++){
		for (j=1; j<=n; j++){
			if (box[j]+goods[i] <= 100){    // 只要 货物 + 箱子里的货物 <= 100 ,就放入此箱子 
				box[j] += goods[i]; 
				printf("%d %d\n", goods[i], j);
				if (j > max)       //若此时箱子序号 j 比 max值大,就赋值给 max 
					max = j;
				break;        // 装完一个货物就跳出,不要再跟箱子循环了 
			}
		}
	}
	
	printf("%d\n", max);
	
	return 0;
}