Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数组的一部分中查找特定值的第一个元素 所以我正在学习C++,我有这个任务,我几乎完成了,但是我陷入了一个非常重要的细节:_C++ - Fatal编程技术网

如何在数组的一部分中查找特定值的第一个元素 所以我正在学习C++,我有这个任务,我几乎完成了,但是我陷入了一个非常重要的细节:

如何在数组的一部分中查找特定值的第一个元素 所以我正在学习C++,我有这个任务,我几乎完成了,但是我陷入了一个非常重要的细节:,c++,C++,因此,作业是一种代码,允许人们预订机票。我必须使用10个元素的数组(因为飞机将有10个座位)-前5个元素表示头等舱,而othr 5表示经济舱;数组元素0表示空座位,元素1表示已预订座位。 (所以飞机[0]=1意味着1号座位已经预订,是头等舱,飞机[8]=0意味着9号座位是免费的,是经济舱) 如果顾客想要头等舱机票,他们按1,如果他们想要经济舱,他们按2。如果所有的座位都订在一个类别中,他们应该可以选择在另一个类别中订票。在任何情况下,当他们预订车票时,应通知他们已预订车票、车票类别以及座位号。如

因此,作业是一种代码,允许人们预订机票。我必须使用10个元素的数组(因为飞机将有10个座位)-前5个元素表示头等舱,而othr 5表示经济舱;数组元素0表示空座位,元素1表示已预订座位。 (所以飞机[0]=1意味着1号座位已经预订,是头等舱,飞机[8]=0意味着9号座位是免费的,是经济舱)

如果顾客想要头等舱机票,他们按1,如果他们想要经济舱,他们按2。如果所有的座位都订在一个类别中,他们应该可以选择在另一个类别中订票。在任何情况下,当他们预订车票时,应通知他们已预订车票、车票类别以及座位号。如果没有座位,他们应该得到一个通知,“下一班飞机3小时后起飞”

我已经完成了代码,但我有一个问题:如果原始数组的所有元素都等于零,那么它就可以正常工作。但是,只要一个元素等于1,我就会收到通知,所有的座位都被预订在上述类别中

我相信我的错误在于我的“for”循环的开始,但我不能准确地指出它(因为我对这个非常陌生)。 我的“for”循环的目标是一次查看5个特定数组元素,一旦有一个元素等于0,停止,用1替换该值,然后打印票据并退出程序

这就是代码:

#include <iostream>
#include <string>
using namespace std;

int linearSearch(const int[], int, int);

int main() {
  const int arraySize = 10;
  int plane[arraySize] = {0};
  int seat, i;
  string answer;
  int check = 1;
  int level = 5;

  int element = linearSearch(plane, check, level);

  cout << "Please press 1 for first class and 2 for economy." << endl;
  cin >> seat;

  switch (seat) {
    case 1: {
      for (i = 0; i < 5; i++) {
        int element = linearSearch(plane, check, level);
        if (element == -1) {
          plane[i] = 1;
          cout << "You have booked a seat at first class, and you are seated "
                  "at seat number "
               << plane[i] << endl;
          break;
        } else
          cout << "There are no seats available in first class. Would you like "
                  "a seat at economy class?/n(Type 'yes' to continue and 'no' "
                  "to exit)"
               << endl;
        cin >> answer;
        if (answer == "yes") {
          for (i = 5; i < 10; i++) {
            int element = linearSearch(plane, check, level);
            if (element == -1) {
              plane[i] = 1;
              cout << "You have booked a seat at economy class, and you are "
                      "seated at seat number "
                   << plane[i] << endl;
              break;
            } else
              cout << "There are no seats available. The next flight leaves in "
                      "3 hours."
                   << endl;
            break;
          }
        } else
          cout << "There are no seats available. The next flight leaves in 3 "
                  "hours."
               << endl;
        break;

        break;
      }
      break;
    }

    case 2: {
      for (i = 5; i < 10; i++) {
        int element = linearSearch(plane, check, level);
        if (element == -1) {
          plane[i] = 1;
          cout << "You have booked a seat at economy class, and you are seated "
                  "at seat number "
               << plane[i] << endl;
          break;
        } else
          cout << "There are no seats available in economy class. Would you "
                  "like a seat at first class?/n(Type 'yes' to continue and "
                  "'no' to exit)"
               << endl;
        cin >> answer;
        if (answer == "yes") {
          for (i = 0; i < 5; i++)
            int element = linearSearch(plane, check, level);
          if (element == -1) {
            plane[i] = 1;
            cout << "You have booked a seat at first class, and you are seated "
                    "at seat number "
                 << plane[i] << endl;
            break;
          } else
            cout << "There are no seats available. The next flight leaves in 3 "
                    "hours."
                 << endl;
          break;
        } else
          cout << "There are no seats available. The next flight leaves in 3 "
                  "hours."
               << endl;
        break;

        break;
      }
      break;
    }

    default:
      break;
  }
}

int linearSearch(const int Array[], int key, int sizeofArray) {
  for (int j = 0; j < sizeofArray; j++) {
    if (Array[j] == key)
      return j;
  }
  return -1;
}
#包括
#包括
使用名称空间std;
int linearSearch(常量int[],int,int);
int main(){
常数int arraySize=10;
int平面[arraySize]={0};
内座,i;
字符串回答;
整数检查=1;
智力水平=5;
int元素=线性搜索(平面、方格、标高);
坐椅;
开关(座椅){
案例1:{
对于(i=0;i<5;i++){
int元素=线性搜索(平面、方格、标高);
如果(元素==-1){
平面[i]=1;

cout问题出在您的linearSearch函数中。它为第一个找到的元素返回一个。因此,如果至少一个数组单元格等于1,它将返回所有已预订的单元格,即使所有其他单元格都是空闲的。您应该搜索空闲单元格,而不是预订的单元格。

问题出在您的linearSearch函数中。它为第一个找到的元素返回一个因此,如果至少有一个数组单元格等于1,则即使所有其他单元格都是空闲的,也会返回所有已预订的结果。您应该搜索空闲单元格,而不是已预订的单元格。

这似乎是不必要的代码量。请提供。请关注最小部分。这也适用于您对问题的解释。因此,您似乎有错过了一个
{
在代码中的else之后。这将导致
cin>>答案在else之外并始终运行。这可能是问题所在。为什么你要在5个座位上循环,在linearSearch内循环?为什么你在预订之前不检查座位是否售出?@斯塔克检查座位是否售出是个想法,这就是w我正在尝试做的事情(但我显然失败了)…这似乎是不必要的代码量。请提供。请关注最小部分。这也适用于您对问题的解释。因此,您似乎错过了一个
{
在代码中的else之后。这将导致
cin>>答案在else之外并始终运行。这可能是问题所在。为什么你要在5个座位上循环,在linearSearch内循环?为什么你在预订之前不检查座位是否售出?@斯塔克检查座位是否售出是个想法,这就是w我正在努力做的事情(但我显然失败了)。。。