C++航班预订计划

C++ flight booking program

本文关键字:计划 C++      更新时间:2023-10-16

我正在编写一个程序来分配航班中的座位。

法典:

#include<bits/stdc++.h>
using namespace std;
int main()
{
int i=0, j=0, seatNo;
int seatsAllotted=0;
//10 seats numbered 1 through 10
//0->seat unavailable
//1->seat available
int available[10];
for(i=1; i<=10; i++)
{
available[i]=1;
}
int choice;
while(1)
{
cout<<"nn1. BOOKING";
cout<<"n";
cout<<"2. CANCELLATIONn";
cin>>choice;
switch(choice)
{
//BOOKING PART
case 1:
int no;
cout<<"nnEnter no. of seats to be booked: ";
cin>>no;
if((seatsAllotted+no)>10)
{
cout<<"Insufficient no. of seats are available";
}
else
{
for(j=1; j<=no; j++)
{
for(i=1; i<=10; i++)
{
if(available[i]==1)
{
seatNo=i;
available[i]=0;
break;
}
}
cout<<"nSeat nos. allotted are: ";
cout<<seatNo;
seatsAllotted+=1;
}
}
break;
//CANCELLATION PART
case 2:
int cancel;
cout<<"nnEnter the seat nos. to be cancelled: ";
cin>>cancel;
available[cancel]=1;
seatsAllotted-=1;
break;
default:
cout<<"Wrong choice";
}
}
return 0;
}

通常,程序根据需要输出座位号。 但是当我输入某些值时,相同的座位号。分配两次。

请看图片

https://preview.ibb.co/knP3FQ/book.png

当我给出 3 作为输入时,输出是正确的。但是当我想预订8个座位时,答案是不正确的。

有人可以指出我做错了什么吗?

谢谢

问题出在以下几行:

for(i=1; i<=10; i++)
{
available[i]=1;
}

您已声明int available[10].这意味着索引可以从09

因此 for 循环应该是for(i=0; i<10; i++)