Как умножить / разделить одну функцию на другую? Как использовать параметры? - PullRequest
0 голосов
/ 29 мая 2019

Как мне умножить функцию на другую функцию?и как мне правильно использовать параметры?

Я не совсем уверен, я действительно новичок в C ++, у меня всего 14 недель занятий.

Я пытался создать новую функцию, предназначенную для умножения других функций.и в аргументах я бы вставил имена функций.

Например:

float mealMath(numberOfAdults, mealChoosing){
   //Rest of function
}

но я всегда получаю ошибку. Пожалуйста, объясните, как это исправить, это большое препятствие впрограммирование для меня, и я не могу понять, как это исправить или делать эти вещи.Не обижайтесь на меня за это. Спасибо!

int numberOfAdults(){
    int totalAdults;
            cout << "Now how many adults will there be?: ";
            cin >> totalAdults;
                cout << "It seems there will be: " <<                      totalAdults << " Adults." << endl;
                    while(totalAdults < 1){
                        cout << "Sorry there has to be a minimum of 1 adult!" << endl;
                            cout << "How many adults: "; 
                                cin >>  totalAdults;
                    }
                    return 0;
}

int numberOfKids(){
    int totalKids;
        cout << "Now how many Kids will there be?: ";
            cin >> totalKids;
                cout << "It seems there will be: " <<   totalKids << " kids." << endl;
                    while(totalKids < 0){
                        cout << "Sorry there has   to be a minimum of 1 Kid!" << endl;
                            cout << "How many   Kids: "; 
                            cin >>   totalKids;
                    }
                    return 0;
                  }


float mealChoosing(){
    float cost;
        string mealChoise;
            cout << "   " << endl;
                cout << "Now, What meal will you be    getting(D/S): ";
                    cin >> mealChoise;
                        if(mealChoise == "D"){
                            cout << "It seems you have selected the Deluxe Meal plan for everyone!" << endl;
                                cost = 25.95;
                        }
                                    if(mealChoise == "S"){
                                        cout << "It seems you have selected the Standard Meal plan for everyone!" <<     endl;
                                            cost = 21.75;
                            }
                                                cout << "   " << endl;

                                                return cost;
}

Один ожидаемый результат - я хочу умножить ввод, который пользователь дает в функции "numberOfAdults", на ввод, который пользователь дает для "mealChoosing"

Итак, я хочу, чтобы numberOfAdults * foodChoosing, но я хочу, чтобы это было сделано в другой функции, поэтому

"float total(){
   float totalBill;
     totalBill = numberOfAdults * mealChoosing;
       cout << totalBill;"

или что-то в этом духе.Я не могу завершить этот проект, потому что по какой-то причине не могу правильно предоставить функциям необходимую информацию, необходимую для параметров.

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Как mealChoosing() вернуть totalAdults и totalKids (хотя здесь это не нужно) из numberOfAdults(), numberOfKids() соответственно.

int numberOfAdults() {
  //...
  return totalAdults;
}

int numberOfKids() {
    //..
    return totalKids;
}

float mealChoosing() {
 //..

  return cost;
}

Сейчас на mealMath(numberOfAdults, mealChoosing)

float mealMathOutput = mealMath(numberOfAdults(), mealChoosing());
0 голосов
/ 29 мая 2019

В этом случае (и в большинстве случаев) вам не следует объявлять функцию, параметры которой являются функциями. Вместо этого объявите foodMath с целым числом и вводом с плавающей запятой:

float mealMath(int a, float b){/*Your code here*/}

А затем позже вызовите foodMath с двумя другими функциями, переданными в качестве аргументов.

float x = mealMath(numberOfAdults(), mealChoosing());

В качестве альтернативы вы можете не иметь параметров функции для mealMath() и вместо этого вызывать numberOfAdults() и mealChoosing() изнутри функции.

Важно отметить, что большую часть времени вы будете вызывать функцию и использовать ее вывод в качестве аргумента, и поэтому вам нужно будет поставить () после идентификатора функции, а не просто вводить идентификатор один.

...