1. 程式人生 > >C(3)

C(3)

i+1 不能 () 可能 實現 空格 i++ 輸出 輸入

多次運用循環,條件語句,定義數組,排序

旅行團需要租帆船進行冒險活動,一條帆船最多乘坐兩人,且乘客的總重量不能超過帆船的最大載重。為盡可能的減少活動花銷,你要找出最少帆船條數。現寫一個程序,輸入帆船的最大載重(應大於旅客中最大重量)、旅客數量和每位旅客的重量,求出最少所需的帆船數。

#include<stdio.h>
main()
{
static int w,n,r,p,m,max,min;
static int a[300],i,j,t,k;
printf("以空格間隔,輸入帆船對大承載量(80<=w<=200)和參與人數(1<=n<=300):");
scanf("%d %d",&w,&n);
printf("\n自動生成參與者的重量:\n");
for(i=0;i<=n-1;i++)
{
a[i]=rand()%(130-30+1)+30;
printf("%4d",a[i]);
if((i+1)%10==0)
printf("\n");
}
printf("\n");
for(i=0;i<n-1;i++)
for(j=0;j<n-(i+1);j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(j=0;j<n;j++)
{
printf("%4d",a[j]);
if((j+1)%10==0)
printf("\n");
}
printf("\n");
j=0;
i=n-1;
for(m=1;m<=n;m++)
{
max=a[i];
min=a[j];
if(max+min<=w)
{
i--;
j++;
k++;
}
else
{
i--;
k++;
}
if(i<=j)break;
}
printf("\n總共需要%d只帆船\n",k);
}

技術分享

沒能實現輸出全部組合

技術分享

C(3)