Итак, я пытаюсь создать базовую программу для расчета цены заказа на пиццу. Я хочу, чтобы он спросил, завершен ли заказчик. Если они вводят y, я хочу, чтобы цикл продолжался, если какой-либо другой символ введен, я хочу, чтобы он остановился. Когда я ввожу какого-либо символа, программа просто распечатывает все мои заявления printf. Я использую кодовые блоки. Вот мой код. Я получаю 2 предупреждения. Проблема с программированием на программирование
warning: initialization makes integer from pointer without a cast [enabled by default] at line 17 where i declare the keepgoing variable.
warning: comparison between pointer and integer [enabled by default]|
по линии 19, где начинается цикл в то время.
#include <stdio.h>
#include <stdlib.h>
main()
{
#define LARGEPIZZAPRICE
#define SMALLPIZZAPRICE
#define LARGEPIZZATOPPING
#define SMALLPIZZATOPPING
#define DRINK
int numberOfLargePizzas;
int numberOfSmallPizzas;
int numberOfLargeToppings;
int numberOfSmallToppings;
int numberOfDrinks;
int keepGoing = "y";
while (keepGoing == "y")
{
printf("How many large pizza's do you want\n");
scanf(" %d", &numberOfLargePizzas);
printf("How many large toppings do you want\n");
scanf(" %d", &numberOfLargeToppings);
printf("How many small pizza's do you want\n");
scanf(" %d", &numberOfSmallPizzas);
printf("How many small toppings do you want\n");
scanf(" %d", &numberOfSmallToppings);
printf("Would you like to order more. Enter a y or n\n");
scanf(" %i", &keepGoing);
}
}`
***** ***** UPDATE Ok спасибо за всю помощь, он работает хорошо сейчас. Если кто-то может посмотреть на него и дать какие-либо советы, чтобы подтянуть его или сделать то, что я делаю, пожалуйста, дайте мне знать. Это опыт обучения для меня, и я делаю это с помощью проб и ошибок. Программа работает, но у меня такое чувство, что я неправильно ее структурирую. Вот что у меня есть:
#include <stdio.h>
#include <stdlib.h>
main()
{
#define LARGEPIZZAPRICE 12
#define SMALLPIZZAPRICE 10
#define LARGEPIZZATOPPING 2
#define SMALLPIZZATOPPING 1.50
#define DRINK 1.50
#define TAXRATE .05
int numberOfLargePizzas;
int numberOfSmallPizzas;
int numberOfLargeToppings;
int numberOfSmallToppings;
int numberOfDrinks;
char keepGoing ='y';
float largePizzaTotal;
float smallPizzaTotal;
float drinkTotal;
while (keepGoing == 'y')
{
printf("How many large pizza's do you want\n");
scanf(" %d", &numberOfLargePizzas);
if(numberOfLargePizzas != 0){
printf("How many large toppings do you want\n");
scanf(" %d", &numberOfLargeToppings);
}
printf("How many small pizza's do you want\n");
scanf(" %d", &numberOfSmallPizzas);
if(numberOfSmallPizzas !=0){
printf("How many small toppings do you want\n");
scanf(" %d", &numberOfSmallToppings);
}
printf("How many drinks would you like\n");
scanf(" %int", &numberOfDrinks);
printf("Would you like to order more. Enter a y or n\n");
scanf(" %c", &keepGoing);
}
largePizzaTotal = (LARGEPIZZAPRICE*numberOfLargePizzas)+(LARGEPIZZATOPPING*numberOfLargeToppings);
smallPizzaTotal=(SMALLPIZZAPRICE*numberOfSmallPizzas)+(SMALLPIZZATOPPING*numberOfSmallToppings);
drinkTotal = DRINK*numberOfDrinks;
printf("Subtotal: %2f", largePizzaTotal + smallPizzaTotal + drinkTotal);
}
попытка упомянуть в названии, что проблема сделать вы хотите решить –
вы знаете, вы не можете вычислить 'subTotal' * до * вы получаете значения. –
так сделайте это, как этот printf («Промежуточный итог:% d», большойPizzaTotal + smallPizzaTotal + drinkTotal); –