期末考试题C语言

在这里插入图片描述

楼主的代码
搞了两个多小时,发现直接写代码真不是个好习惯。。。。
先思考,想明白 ,再去实现。。。

#include<stdio.h>
int main()
{ int b[4],c[4]={0},a[19]={0,20,4,10,6,10,4,0,0,20,5,3,0,5,8,3,4,3,10};
  int i,j,m,n[4],p,q;
  printf("请按顺序输入每组家庭的人数:\n");
  for(i=0;i<4;i++)
  {scanf("%d",&b[i]);
  }
  for(i=0;i<4;i++)//下面需要一个最初的值进行比较
  	{for(j=18;j>0;j--)
  		{if(a[j]>=b[i])
   			{n[i]=a[j]+1;
   			break;
  			}
 		}
  	}
  for(i=0;i<4;i++)
    {for(j=18;j>0;j--)
      {if(a[j]>=b[i]) 
        {if(a[j]==b[i])         //如果包厢的大小和家庭人数恰好相等时
          {c[i]=j;
           a[j]=0;
           break;}
		 if(a[j]<n[i])//寻找与家庭人数最接近的包厢
		  {n[i]=a[j];
		   c[i]=j;
		  }
	    }
	  }
	  a[c[i]]=0;      //把已经分配的包厢赋值为零 
	}
 for(i=0;i<4;i++)
  {if(c[i]==0)
    {printf("第%d组家庭没有合适的包厢\n",i+1);
    }
   else
    {printf("第%d组家庭在%d号包厢就餐\n",i+1,c[i]);
    }
  }
  return 0;	
}

运行结果
在这里插入图片描述
在这里插入图片描述

可惜考试时没答出来 (虽然是网课,但还是很伤心?)

  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值