Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C中调用函数_C_Function - Fatal编程技术网

如何在C中调用函数

如何在C中调用函数,c,function,C,Function,我正在为编程入门课程做最后一个项目,任务是创建一个代码,显示一个菜单,并要求用户输入一个选项。之后,它将显示订单的总额和用户选择的项目名称 这是我的密码: #include <stdio.h> #include <stdlib.h> #define TEQUENOS_PRICE 5.00 #define AREPA_PRICE 3.00 #define CACHAPA_PRICE 2.50 #define EMPANADA_PRICE 2.00 #define SODA

我正在为编程入门课程做最后一个项目,任务是创建一个代码,显示一个菜单,并要求用户输入一个选项。之后,它将显示订单的总额和用户选择的项目名称

这是我的密码:

#include <stdio.h>
#include <stdlib.h>

#define TEQUENOS_PRICE 5.00
#define AREPA_PRICE 3.00
#define CACHAPA_PRICE 2.50
#define EMPANADA_PRICE 2.00
#define SODA_PRICE 0.80
#define QUESILLO_PRICE 1.70
#define DULCE_DE_LECHE_PRICE 1.20

int main()
{
int choice = 0, tequenos = 0, arepa = 0, cachapa = 0, empanada = 0;
int soda = 0, quesillo = 0, dulceDeLeche = 0;
double sum = 0.0, totalPrice;

printf("Welcome to Daniela's Venezuelan emporium.\n");
printf("\nMay I take your order please?\n");

do
{
    printf("\n\tMenu");
    printf("\n1. Tequenos (5 ct.)\t  $%5.2lf", TEQUENOS_PRICE);
    printf("\n2. Arepa\t\t  $%5.2lf", AREPA_PRICE);
    printf("\n3. Cachapa\t\t  $%5.2lf", CACHAPA_PRICE);
    printf("\n4. Empanada\t\t  $%5.2lf", EMPANADA_PRICE);
    printf("\n5. Soda \t\t  $%5.2lf", SODA_PRICE);
    printf("\n6. Quesillo\t\t  $%5.2lf", QUESILLO_PRICE);
    printf("\n7. Dulce de Leche\t  $%5.2lf", DULCE_DE_LECHE_PRICE);
    printf("\n8. Done with this order.\n");
    printf("\nEnter Item: ");
    scanf("%i", &choice);

    switch (choice)
    {
        case 1:
            sum += TEQUENOS_PRICE;
            tequenos++;
            break;
        case 2:
            sum += AREPA_PRICE;
            arepa++;
            break;
        case 3:
            sum += CACHAPA_PRICE;
            cachapa++;
            break;
        case 4: 
            sum += EMPANADA_PRICE;
            empanada++;
            break;
        case 5:
            sum += SODA_PRICE;
            soda++;
            break;
        case 6:
            sum += QUESILLO_PRICE;
            quesillo++;
            break;
        case 7: 
            sum += DULCE_DE_LECHE_PRICE;
            dulceDeLeche++;
            break;
        case 8:
            break;
        default: 
            printf("\n\t***ERROR: This is not on the menu.\n");
    }
    printf("\nTotal so far: $%.2lf\n", sum);
} while (choice != 8);

printf("\nThat's: ");

if (choice = 1)
{
    printf(" %i Tequenos\n", tequenos);
}
if (choice = 2)
{
    printf("\t %i Arepa\n", arepa);
}
if (choice = 3)
{
    printf("\t %i Cachapa\n", cachapa);
}
if (choice = 4)
{
    printf("\t %i Empanada\n", empanada);
}
if (choice = 5)
{
    printf("\t %i Soda\n", soda);
}
if (choice = 6)
{
    printf("\t %i Quesillo\n", quesillo);
}
if (choice = 7)
{
    printf("\t %i Dulce De Leche\n", dulceDeLeche);
}

totalPrice = sum;
printf("\nYour total is $%.2lf\n", totalPrice);
printf("\nThank you for coming to Daniela's Venezuelan Emporium.");
printf("\nCome back soon!\n");

system("pause");
return 0;
}
#包括
#包括
#定义TEQUENOS_价格5.00
#定义AREPA_价格3.00
#定义CACHAPA_价格2.50
#定义EMPANADA_价格2.00
#定义苏打水价格0.80
#定义QUESILLO_价格1.70
#定义DULCE_DE_LECHE_价格1.20
int main()
{
int choice=0,tequenos=0,arepa=0,cachapa=0,empanada=0;
int soda=0,quesillo=0,dulceDeLeche=0;
双倍总和=0.0,总价;
printf(“欢迎来到Daniela的委内瑞拉商场。\n”);
printf(“\n我可以接受您的订单吗?\n”);
做
{
printf(“\n\t菜单”);
printf(“\n1.Tequenos(5克拉)\t$%5.2lf”,Tequenos_价格);
printf(“\n2.Arepa\t\t$%5.2lf”,Arepa\u价格);
printf(“\n3.Cachapa\t\t$%5.2lf”,Cachapa\u价格);
printf(“\n4.Empanada\t\t$%5.2lf”,Empanada\u价格);
printf(“\n5.Soda\t\t$%5.2lf”,苏打价格);
printf(“\n6.Quesillo\t\t$%5.2lf”,Quesillo\u价格);
printf(“\n7.Dulce de Leche\t$%5.2lf”,Dulce de Leche\u价格);
printf(“\n8.此订单已完成。\n”);
printf(“\n输入项:”);
scanf(“%i”和“选择”);
开关(选择)
{
案例1:
总和+=TEQUENOS_价格;
tequenos++;
打破
案例2:
总和+=AREPA_价格;
arepa++;
打破
案例3:
总和+=CACHAPA_价格;
cachapa++;
打破
案例4:
总和+=EMPANADA_价格;
empanada++;
打破
案例5:
总和+=苏打水价格;
苏打++;
打破
案例6:
总和+=魁西洛价格;
魁西洛++;
打破
案例7:
总和+=价格;
dulceDeLeche++;
打破
案例8:
打破
违约:
printf(“\n\t***错误:这不在菜单上。\n”);
}
printf(“\n到目前为止的总计:$%.2lf\n”,总和);
}while(选项!=8);
printf(“\n地址:”);
如果(选项=1)
{
printf(“%i Tequenos\n”,Tequenos);
}
如果(选项=2)
{
printf(“\t%i Arepa\n”,Arepa);
}
如果(选项=3)
{
printf(“\t%i Cachapa\n”,Cachapa);
}
如果(选项=4)
{
printf(“\t%i Empanada\n”,Empanada);
}
如果(选项=5)
{
printf(“\t%i苏打水\n”,苏打水);
}
如果(选项=6)
{
printf(“\t%i魁西洛\n”,魁西洛);
}
如果(选项=7)
{
printf(“\t%i Dulce De Leche\n”,dulceDeLeche);
}
总价=总和;
printf(“\n您的总价为%.2lf\n美元”,总价);
printf(“感谢您光临Daniela的委内瑞拉商场。”);
printf(“\n马上回来!\n”);
系统(“暂停”);
返回0;
}
代码运行良好,但我的教授告诉我,我需要在整个代码中调用函数,main应该只调用其他函数。我一直在尝试,但对我来说真的很困惑,我不知道怎么做。如果你们能帮我,我会非常感激的。
谢谢

这是您的代码,经过轻微的重构,将程序的主要部分分解为单独的函数

#include <stdio.h>
#include <stdlib.h>

#define TEQUENOS_PRICE 5.00
#define AREPA_PRICE 3.00
#define CACHAPA_PRICE 2.50
#define EMPANADA_PRICE 2.00
#define SODA_PRICE 0.80
#define QUESILLO_PRICE 1.70
#define DULCE_DE_LECHE_PRICE 1.20

int tequenos = 0,
arepa = 0,
cachapa = 0,
empanada = 0,
soda = 0,
quesillo = 0,
dulceDeLeche = 0;

double sum = 0.0;

void print_header()
{
    printf("Welcome to Daniela's Venezuelan emporium.\n");
    printf("\nMay I take your order please?\n");
}

int get_menu_choice()
{
    int choice;

    printf("\n\tMenu");
    printf("\n1. Tequenos (5 ct.)\t  $%5.2lf", TEQUENOS_PRICE);
    printf("\n2. Arepa\t\t  $%5.2lf", AREPA_PRICE);
    printf("\n3. Cachapa\t\t  $%5.2lf", CACHAPA_PRICE);
    printf("\n4. Empanada\t\t  $%5.2lf", EMPANADA_PRICE);
    printf("\n5. Soda \t\t  $%5.2lf", SODA_PRICE);
    printf("\n6. Quesillo\t\t  $%5.2lf", QUESILLO_PRICE);
    printf("\n7. Dulce de Leche\t  $%5.2lf", DULCE_DE_LECHE_PRICE);
    printf("\n8. Done with this order.\n");
    printf("\nEnter Item: ");

    scanf("%i", &choice);
    return choice;
}

void process_menu_choice(int choice)
{
    switch (choice)
    {
    case 1:
        sum += TEQUENOS_PRICE;
        tequenos++;
        break;
    case 2:
        sum += AREPA_PRICE;
        arepa++;
        break;
    case 3:
        sum += CACHAPA_PRICE;
        cachapa++;
        break;
    case 4: 
        sum += EMPANADA_PRICE;
        empanada++;
        break;
    case 5:
        sum += SODA_PRICE;
        soda++;
        break;
    case 6:
        sum += QUESILLO_PRICE;
        quesillo++;
        break;
    case 7: 
        sum += DULCE_DE_LECHE_PRICE;
        dulceDeLeche++;
        break;
    case 8:
        break;
    default: 
        printf("\n\t***ERROR: This is not on the menu.\n");
    }

    printf("\nTotal so far: $%.2lf\n", sum);
}

void take_order()
{
    do
    {
        choice = get_menu_choice();

        process_menu_choice(choice);
    } while (choice != 8);
}

void print_total_for(char *item_type, int item_count)
{
    if(item_count > 0)
        printf(" %i %s\n", item_count, item_type);
}

int print_total(double totalPrice)
(
        printf("\nYour total is $%.2lf\n", totalPrice);
printf("\nThank you for coming to Daniela's Venezuelan Emporium.");
printf("\nCome back soon!\n");
}

void print_total_header()
{
    printf("\nThat's: ");
}

int main()
{
    int choice = 0;

    print_header();

    take_order();

    print_total_header();

    print_total_for("Tequenos", tequenos);
    print_total_for("Arepa", arepa);
    print_total_for("Cachapa", cachapa);
    print_total_for("Empanada", empanada);
    print_total_for("Soda", soda);
    print_total_for("Quesillo", quesillo);
    print_total_for("Dulce De Leche", dulceDeLeche);

    print_total(sum);

    system("pause");
    return 0;
}
#包括
#包括
#定义TEQUENOS_价格5.00
#定义AREPA_价格3.00
#定义CACHAPA_价格2.50
#定义EMPANADA_价格2.00
#定义苏打水价格0.80
#定义QUESILLO_价格1.70
#定义DULCE_DE_LECHE_价格1.20
int-tequenos=0,
arepa=0,
cachapa=0,
empanada=0,
苏打水=0,
奎西略=0,
dulceDeLeche=0;
双和=0.0;
作废打印头()
{
printf(“欢迎来到Daniela的委内瑞拉商场。\n”);
printf(“\n我可以接受您的订单吗?\n”);
}
int get_菜单_选项()
{
智力选择;
printf(“\n\t菜单”);
printf(“\n1.Tequenos(5克拉)\t$%5.2lf”,Tequenos_价格);
printf(“\n2.Arepa\t\t$%5.2lf”,Arepa\u价格);
printf(“\n3.Cachapa\t\t$%5.2lf”,Cachapa\u价格);
printf(“\n4.Empanada\t\t$%5.2lf”,Empanada\u价格);
printf(“\n5.Soda\t\t$%5.2lf”,苏打价格);
printf(“\n6.Quesillo\t\t$%5.2lf”,Quesillo\u价格);
printf(“\n7.Dulce de Leche\t$%5.2lf”,Dulce de Leche\u价格);
printf(“\n8.此订单已完成。\n”);
printf(“\n输入项:”);
scanf(“%i”和“选择”);
回报选择;
}
无效进程菜单选项(整数选项)
{
开关(选择)
{
案例1:
总和+=TEQUENOS_价格;
tequenos++;
打破
案例2:
总和+=AREPA_价格;
arepa++;
打破
案例3:
总和+=CACHAPA_价格;
cachapa++;
打破
案例4:
总和+=EMPANADA_价格;
empanada++;
打破
案例5:
总和+=苏打水价格;
苏打++;
打破
案例6:
总和+=魁西洛价格;
魁西洛++;
打破
案例7:
总和+=价格;
dulceDeLeche++;
打破
案例8:
打破
违约:
printf(“\n\t***错误:这不在菜单上。\n”);
}
printf(“\n到目前为止的总计:$%.2lf\n”,总和);
}
作废订单()
{
做
{
choice=获取菜单选项();
过程菜单选择(选择);
}while(选项!=8);
}
无效打印总数(字符*项目类型,整数项目计数)
{
如果(项目计数>0)
printf(“%i%s\n”,项目计数,项目类型);
}
整数打印合计(双倍总价)
(
printf(“\n您的总价为%.2lf\n美元”,总价);
printf(“感谢您光临Daniela的委内瑞拉商场。”);
printf(“\n马上回来!\n”);
}
无效打印\总\页眉()
{
printf(“\n地址:”);
}
int main()
{
int-choice=0;
打印标题();
点菜;
打印总页眉();
打印(“Tequenos”,Tequenos)的总计;
打印(“Arepa”,Arepa)的总计;
打印(“Cachapa”,Cachapa)的总计;
打印(“Empanada”,Empanada)的总计;
打印(“苏打水”,苏打水)的总计;
打印(“魁西洛”,魁西洛)的总计;
打印(“Dulce De Leche”,dul)的总计