C语言 PETS SPA如何在用户选择中小型或大型时增加额外收费的选项


#include <stdio.h>
int main(void) {
int option;
int many;
char name;
float CNP = 20.00;
float TWS = 30.00;
float FG = 40.00;
float Many1 = 0.00;
float Many2 = 5.00;
float Many3 = 15.00;

while(1){
printf("-------------Welcome-------------n");
printf("**********M.A.C PETS SPA*********n");
printf("     choose from our Specialsn");
printf("---------------------------------n");
printf("[1] CLEAN UP Special includes General shower and haircut - $20.00n");
printf("-----------------------------------------------------n");
printf("[2] THE WORKS Special includes General shower, haircut, ear cleaning, and nail trim - $30.00n");
printf("-----------------------------------------------------n");
printf("[3] FULL GROOM Special includes Breed appropriate shower, specific haircut, nail trim, ear cleaning, bandana and cologne - $40.00n");
printf("-----------------------------------------------------n");

printf("Enter your special: number:n");
scanf("%d",&option);

if(option == 1)
{
printf("What size is your dog?: ");
printf("[1]: smalln");
printf("[2]: mediumn");
printf("[3]: Largen");
scanf("%dn",&many);
printf("Total Price including extra charge for the size is = $%.2fn",(CNP+many) );
break;
}
else if(option == 2)
{
printf("What size is your dog?: n");
printf("[1]: smalln");
printf("[2]: mediumn");
printf("[3]: Largen");
scanf("%d",&many);
printf("Total Price including extra charge for the size is = $%.2f",TWS*many + (TWS*many*0.07) );
break;
}
else if(option == 3)  
{
printf("What size is your dog?: n");
printf("[1]: smalln");
printf("[2]: mediumn");
printf("[3]: Largen");

scanf("%d",&many);
printf("Total Price including extra charge for the size is = $%.2f",FG*many + (FG*many*0.07) );
break;
}

else printf("Invalid item number! Re-enter item numbern");
}
return 0;
}

我试着让用户选择他们的狗的大小,并根据他们选择的大小增加额外的费用。我似乎不能得到它的权利,我觉得我需要创建另一个循环或使用结构,我需要帮助,请!!

我尝试使用循环和输入假设他们选择第一个选项大小为medium

则输出为20.00 + 15.00 = 35.00

您不希望scanf()格式字符串包含换行符。重构以减少代码重复(当你澄清公式时,我会修改我的答案):

#include <stdio.h>
struct option {
char *string;
float price;
};
float ask(const char *prompt, size_t n, const struct option options[n]) {
for(;;) {
printf("%snn", prompt);
for(int i = 0; i < n; i++) {
printf("[%d] %s - $%.2fn"
"-----------------------------------------------------n",
i + 1,
options[i].string,
options[i].price
);
}
printf("n");
int o;
if(scanf("%d", &o) != 1) {
printf("Option could not be read.nn");
while(getchar() != 'n');
continue;
}
printf("n");
for(int i = 0; i < n; i++) {
if(o == i + 1)
return options[i].price;
}
printf("Option %d was not valid.n", o);
}
}
int main(void) {
for(;;) {
float service = ask(
"-------------Welcome-------------n"
"**********M.A.C PETS SPA*********n"
"     choose from our Specialsn"
"---------------------------------",
3,
(const struct option []) {
{ "CLEAN UP Special includes General shower and haircut", 20 },
{ "THE WORKS Special includes General shower, haircut, ear cleaning, and nail trim", 30
},
{ "FULL GROOM Special includes Breed appropriate shower, specific haircut, nail trim, ear cleaning, bandana and cologne", 40 }
}
);
float size = ask(
"What size is your dog?",
3,
(const struct option []) {
{ "Small", 0 },
{ "Medium", 5 },
{ "Large", 15 },
}
);
printf("Total Price including extra charge for the size is = $%.2fnn", service + size);
}
}

和示例:

-------------Welcome-------------
**********M.A.C PETS SPA*********
choose from our Specials
---------------------------------
[1] CLEAN UP Special includes General shower and haircut - $20.00
-----------------------------------------------------
[2] THE WORKS Special includes General shower, haircut, ear cleaning, and nail trim - $30.00
-----------------------------------------------------
[3] FULL GROOM Special includes Breed appropriate shower, specific haircut, nail trim, ear cleaning, bandana and cologne - $40.00
-----------------------------------------------------
1
What size is your dog?
[1] Small - $0.00
-----------------------------------------------------
[2] Medium - $5.00
-----------------------------------------------------
[3] Large - $15.00
-----------------------------------------------------
x
Option could not be read.
What size is your dog?
[1] Small - $0.00
-----------------------------------------------------
[2] Medium - $5.00
-----------------------------------------------------
[3] Large - $15.00
-----------------------------------------------------
2
Total Price including extra charge for the size is = $25.00

最新更新