Задать вопрос
senku1435
@senku1435
py aiogram develop, c# mid

Почему не работает функция в с++ пытаюсь вызвать, а она не вызывается?

Делаю задание никак не могу понять почему при вызове функции "menu_for", ничего не происходит, компилятор не жалуется

#include <iostream>
#include <string>
#include <vector>

using namespace std;

void BubbleSort(vector<int>& v) {
  for (size_t idx_i = 0; idx_i + 1 < v.size(); ++idx_i) {
    for (size_t idx_j = 0; idx_j + 1 < v.size() - idx_i; ++idx_j) {
      if (v[idx_j + 1] < v[idx_j]) {
        swap(v[idx_j], v[idx_j + 1]);
      }
    }
  }
}


void CombSort(vector<int>& v){
    const double factor = 1.247; // Фактор уменьшения
    double step = v.size() - 1;

    while (step >= 1) {
    for (int i = 0; i + step < v.size(); ++i) {
      if (v[i] > v[i + step]) {
        swap(v[i], v[i + step]);
      }
    }
    step /= factor;
  }
  // сортировка пузырьком
  for (size_t idx_i = 0; idx_i + 1 < v.size(); ++idx_i) {
    for (size_t idx_j = 0; idx_j + 1 < v.size() - idx_i; ++idx_j) {
      if (v[idx_j + 1] < v[idx_j]) {
        swap(v[idx_j], v[idx_j + 1]);
      }
    }
  }
}


void menu_for(vector<int> v)
{
    
    //menu body
    cout<<"Chouse one of the following alghorithms: "<<endl;
    cout<<"1st BubbleSort"<<endl;
    cout<<"2nd CombSort"<<endl;
    
    //menu cursor
    int read;
    cin>>read;
    
    switch (read)
    {
        case 1:
        {
            void BubbleSort(vector<int> v);
        }
        case 2:
        {
            void CombSort(vector<int> v);
        }
        break;
    }
}



int main() 
{
    int n; 
    cout<<"Enter amount of numbers: ";
    cin>>n; 
    int a;
    cout<<"Enter "<<n<<" numbers (devide them by spaces):"<<endl;
    vector<int> v;
   
    for(int i=0 ; i<n ; i++)
    {
        cin>>a;
        v.push_back(a);
    }
    
    cout<<endl;
    return 0;
    menu_for(v);
}
  • Вопрос задан
  • 539 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 2
@12rbah
return 0;
    menu_for(v);
Казалось бы, что могло бы пойти не так, попробуйте поменять местами return и menu_for
Ответ написан
Комментировать
@res2001
Developer, ex-admin
Вот это void BubbleSort(vector<int> v); не вызов функции. Это ее объявление. В коде предварительные объявления функций могут встречаться где угодно, синтаксически это верно, потому компилятор и не ругается. Но вызова не происходит, потому что его нет.
Ну и учтите замечание 12rbah
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@NDA81
C++ noob
А что должно произойти? Прочитайте код этой функции построчно, проговаривая каждое действие. Компилятор и не такое видал...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы