如何调用函数和未使用的表达式错误

时间:2016-11-14 05:36:30

标签: c++ function

我收到一条错误消息:再次使用未声明的标识符'。 我试图在获得答案之后再次从int main变为void并返回。 请向我解释为什么它也不起作用。感谢。

这是我的完整代码:

 #include <iostream> 
 #include <vector>
 #include <iomanip>
 #include <algorithm>
 #include <string>

 using namespace std;

 {
    string answer;
    cout << "Would you like to enter another set of data? Y or N?" << endl;
    cin << answer;
    string yes = "Yes";
    string no = "No";
    if(a == yes)
    {  
         main();
    }
 }
 int main()
 {
    cout << "Kaitlin Stevers" << endl;
    cout << "Exercise 11 - Vectors" << endl;
    cout << "November 12, 2016" <<endl;
    cout << endl;
    cout << endl;
    int size;
    cout << " How many numbers would you like the vector to hold? " << endl;
    cin >> size;
    vector<int> numbers;
    int bnumbers;

    for (int count = 0; count < size; count++)
    {
        cout << "Enter a number: " << endl;
        cin >> bnumbers;
        numbers.push_back(bnumbers); // Adds an element to numbers
     }
     //display the numbers stored in order
     cout << "The numbers in order are: " << endl;
     for(int bcount = 0; bcount < size; bcount++)
     {
         cout << numbers[bcount] << " ";
     }
     cout << endl;
     //display the numbers stored reversed
     cout << "Here are the numbers in reverse order: " << endl;

     reverse(numbers.begin(), numbers.end());
     for(int rcount = 0; rcount < size; rcount++)
     {
        cout << numbers[rcount] << " ";
     }
     cout << endl;
     again();
     return 0;
     }
  void again()

}

1 个答案:

答案 0 :(得分:1)

你需要再次宣布你的功能&#34;在打电话之前:

 #include <iostream> 
 #include <vector>
 #include <iomanip>
 #include <algorithm>
 #include <string>

 using namespace std;

 void again();

 int main()
 {
    cout << "Kaitlin Stevers" << endl;
    cout << "Exercise 11 - Vectors" << endl;
    cout << "November 12, 2016" <<endl;
    cout << endl;
    cout << endl;
    int size;
    cout << " How many numbers would you like the vector to hold? " << endl;
    cin >> size;
    vector<int> numbers;
    int bnumbers;

    for (int count = 0; count < size; count++)
    {
       cout << "Enter a number: " << endl;
       cin >> bnumbers;
       numbers.push_back(bnumbers); // Adds an element to numbers
    }
    //display the numbers stored in order
    cout << "The numbers in order are: " << endl;
    for(int bcount = 0; bcount < size; bcount++)
    {
        cout << numbers[bcount] << " ";
    }
    cout << endl;
    //display the numbers stored reversed
    cout << "Here are the numbers in reverse order: " << endl;
         reverse(numbers.begin(), numbers.end());
    for(int rcount = 0; rcount < size; rcount++)
    {
       cout << numbers[rcount] << " ";
    }
    cout << endl;
    again();
    return 0;
}

void again()
{
   string answer;
   cout << "Would you like to enter another set of data? Y or N?" << endl;
   cin >> answer;
   string yes = "Yes";
   string no = "No";
   if(answer == yes)
   {  
        main();
   }
}

然而,使用递归来表达你想要做的事情以及多次调用main func(根据定义,是程序的主要条目)是一件很奇怪的事情。在我看来,你应该在你的main函数中调用另一个名为askInformation的函数,该函数使用带有测试用例的循环来知道用户是否想要添加信息。