Итак, у меня есть этот код, но мне что-то не хватает, и я не могу его получить. Дело в том, чтобы предложить пользователю выбрать. Они выбирают пищу, которую они хотят заказать, и она сообщает им, что она добавлена. Когда пользователь нажимает 0, программа заканчивается, говоря, что общее из всех элементов, которые они выбрали. По какой-то причине, когда я попал в конец, он просто указывает общее количество последнего добавленного элемента. Любые идеи о том, как исправить это, чтобы итоговые суммы складывались?Справка о программировании - добавление значений вместе
#include<stdio.h>
#define SALES_TAX .06
int selection;
double total;
double amount;
int i;
double getPrice(int selection);
void printOptionName(int selection);
void printMenu();
double getPrice(int selection){
if (selection == 1){
amount = 5.99;
} else if (selection == 2){
amount = 6.99;
} else if (selection == 3){
amount = 7.99;
} else if (selection == 4){
amount = 10.50;
} else if (selection == 5){
amount = 3.50;
}
}
void printOptionName(int selection){
if (selection == 0){
printf("\nYour total is: ");
} else if (selection == 1){
printf("\nAdded a Small Pizza\n\n");
} else if (selection == 2){
printf("\nAdded a Medium Pizza\n\n");
} else if (selection == 3){
printf("\nAdded a Large Pizza\n\n");
} else if (selection == 4){
printf("\nAdded an order of Wings\n\n");
} else if (selection == 5){
printf("\nAdded a Drink\n\n");
} else
printf("Not a valid selection. Please select one of the following options: \n");
}
void printMenu(){
printf("0. (Complete Order)\n");
printf("1. Small Pizza ****** 5.99\n");
printf("2. Medium Pizza ****** 6.99\n");
printf("3. Large Pizza ****** 7.99\n");
printf("4. Wings ****** 10.50\n");
printf("5. Drink ****** 3.50\n");
printf("Enter the Number of your selection: \n");
}
int main(){
printMenu();
scanf("%d", &selection);
printOptionName(selection);
getPrice(selection);
while (selection != 0){
printMenu();
scanf("%d", &selection);
printOptionName(selection);
getPrice(selection);
}
for (i = 0; i <= selection; i++){
total = total + amount;
}
printf("%lf\n", total);
return 0;
}
Вы не храните выбранные предметы в любом месте; вы можете сделать 'total = total + getPrice (selection);' в цикле while, а затем просто распечатать 'total' после окончания поиска и пропустить for-loop. – jpw
'getPrice' говорит, что возвращает' double', но в нем нет инструкции 'return'. Разве ваш компилятор не предупреждает вас об этом? – Barmar
Я понял это! Я возвратил 'amount' из функции getPrice, и я использовал' total = total + getPrice (selection); 'для его обновления. Спасибо, парни! –