// qzh1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#define SIZE 12
int main(int argc, char* argv[])
{
int a[SIZE]={0};//对你所定义的数组进行初始化.开始的时候其值都是0,表示没有人在.其中a[0]一直都没有人,可能是假想开始到有,无烟区的人都先在这里;
int i=1,j=6,n,b;/*i是对吸烟区的人进行记数用的.吸烟区从a[1]开始到a[5]结束;
j是对无烟区的人进行记数用的,无烟区从a[6]开始到a[10]结束;*/
a[11]=1;//把空间的最后一个位置可能是放入一个调度员之类的.
while((a[i]==0)||(a[j]==0)){//a[i]==0表示假如吸烟区没有人;a[j]==0表示假如无烟区没有人;
printf("Please type 1 for smoking\n");
printf("Please type 2 for nonsmoking\n");
scanf("%d",&n);//n表示选择在哪个区
if((n==1)&&(i<=5)){
printf("您的座号为%d\n",i);
printf("您的座位在吸烟区.\n\n");
a[i]=1;//此位置有人
i++;
}
else if((n==2)&&(j<=10)){
printf("您的座号为%d\n",j);
printf("您的座位在无烟区.\n\n");
a[j]=1;//此位置有人
j++;
}
else if((n==1)&&(i>=6)&&(j<=10)){//吸烟区满员,是否选择去无烟区
printf("吸烟区满员,是否选择无烟区的某个座位?是:1,否:2\n");
scanf("%d",&b);
if(b==1){
printf("您的座号为%d\n",j);
printf("您的座位在无烟区.\n\n");
a[j]=1;
j++;
}
else if(b==2)//否则的话,等下一班在3个小时后
printf("Next fight leaves in 3 hours.\n");
}
else if((n==2)&&(i<=6)&&(j>=10)){//无烟区满员,是否选择去吸烟区
printf("无烟区满员,是否选择吸烟区的某个座位?是:1,否:2\n");
scanf("%d",&b);
if(b==1){
printf("您的座号为%d\n",i);
printf("您的座位在无烟区.\n\n");
a[i]=1;
i++;
}
else if(b==2)//否则的话,等下一班在3个小时后
printf("Next fight leaves in 3 hours.\n\n");
}
}
printf("there is no seat available.\n");
printf("Hello World!\n");
return 0;
}
lz 是老师要的作业吧。我当年也是这样干的。现在好怀念啊。早知道的话就应该努力的读书啊。
下面说正题:
上面是我在VC++6.0上调试的,可以运行的程序。
程序的思路是:
吸烟区从a[1]开始到a[5]结束;如果满员可以有到无烟区的选择;
无烟区从a[6]开始到a[10]结束;如果满员可以有到吸烟区的选择;
a[11]可能是一个想象中的调度员。a[0]可能是所有人的暂时落脚处,即假想所有人都是从这里进去到吸烟区和无烟区的。是个出发点。
呵呵。。希望楼主认可。