c - 未定义对确定价格的引用;计算;打印结果

标签 c

我在使用 C 时遇到了一些问题,你能帮帮我吗?我对 C 语言很陌生。

我收到此错误:

D:\yana\mini.o:mini.c||对“确定价格”的 undefined reference |

D:\yana\mini.o:mini.c||对“calc”的 undefined reference |

D:\yana\mini.o:mini.c||对“print_result”的 undefined reference |

||=== 构建完成:3 个错误,0 个警告(0 分钟 7 秒)===|

    #include<stdio.h>
    #include<string.h>
    #include <math.h>


    void menu();
    float determine_price(int);
    float calc(float,int);
    void print_result(float);

    int main()
    {
        char selection;
        int qty,quantity;
        float price,pay,item_price,payment;
        char set;

        printf("**************************\n");
        printf("|AZRI & YANA'S CAKE HOUSE|\n");
        printf("**************************\n");
        printf("\n");
        printf("***************************\n");
        printf("|1 CUP-------------RM3.50 |\n");
        printf("|SET A(3 CUPS)-----RM10.00|\n");
        printf("|SET B(6 CUPS)-----RM20.00|\n");
        printf("|SET C(12 CUPS)----RM38.00|\n");
        printf("***************************\n");
        printf("\n");


        printf("enter Set and quantity:\n");
        scanf("%c %d",&selection,&qty);

        price=determine_price(set);
        pay= calc(price,qty);
        print_result(pay);

    return 0;
    }
    void menu()
    {
        printf("1 cup = RM3.50\n");
        printf("Set A = RM10.00\n");
        printf("Set B = RM20.00\n");
        printf("Set C = RM38.00\n");
    }
    float determine_price(int item_code)
    {
        float set;

           if(selection=='1')
            printf("1 cup = RM3.50\n");
        else if(selection=='A')
            printf("Set A = RM10.00\n");
        else if(selection=='B')
            printf("Set B = RM20.00\n");
        else if(selection=='C')
            printf("Set C = RM38.00\n");
        else
            printf("set not available\n");

        return(set);
    }
    float calc(float item_pricing,int quantity)
    {
        float answer;
        answer = item_price*quantity;
        return(answer);
    }
    void print_result(float payment)
    {
        printf("total cost = %4.2f",payment);
    }
    

我应该做什么来调用函数?我需要调用 function() 还是我的语法有错误?

Edit:

在大家的帮助下修改后,我做了一些编辑..

现在,我遇到了新错误...

D:\yana\mini.c||In function 'determine_price':|

D:\yana\mini.c|54|error: 'selection' undeclared (first use in this function)|

D:\yana\mini.c|54|note: each undeclared identifier is reported only once for each function it appears in|

D:\yana\mini.c||In function 'calc':|

D:\yana\mini.c|70|error: 'item_price' undeclared (first use in this function)|

||=== Build finished: 2 errors, 0 warnings (0 minutes, 0 seconds) ===|

编辑数字 2;

Edit Number 2;

感谢所有回答我问题的人,我发现了几个错误。现在,我的新代码...我尝试将其设置为 clrscreen,但是,它不起作用...有人可以帮助我吗?

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

    void menu();
    int repeat();
    float determine_price(char);
    float calc(float,int);
    void print_result(float);

    int main()
    {
        char selection;
        int qty,quantity,choice;
        float price,pay,item_price,payment;
        //char set;

        while(choice!='2'){
            menu();
            printf("enter Set and quantity:\n");
            scanf("%c %d",&selection,&qty);

            price=determine_price(selection);
            pay= calc(price,qty);
            print_result(pay);
            choice = repeat();
        }

    return 0;
    }

    void menu()
    {
        printf("**************************\n");
        printf("|AZRI & YANA'S CAKE HOUSE|\n");
        printf("**************************\n");
        printf("\n");
        printf("***************************\n");
        printf("|1 CUP-------------RM3.50 |\n");
        printf("|SET A(3 CUPS)-----RM10.00|\n");
        printf("|SET B(6 CUPS)-----RM20.00|\n");
        printf("|SET C(12 CUPS)----RM38.00|\n");
        printf("***************************\n");
        printf("\n");
    }
    void clr(){
        system("cls");
    }
    int repeat(){
        int choice;
        printf("\n\n\n\n");
        printf("Press\n[1] to return to menu\n[2] to end system\n");
        scanf("%d",&choice);

        if(choice=='1'){
            clr();
        }
        return choice;
    }
    float determine_price(char selection){
        float setprice;

        if(selection=='1'){
            printf("1 cup = RM3.50\n");
            setprice=3.50;
        }
        else if(selection=='A'){
            printf("Set A = RM10.00\n");
            setprice=10.00;
        }
        else if(selection=='B'){
            printf("Set B = RM20.00\n");
            setprice=20.00;
        }
        else if(selection=='C'){
            printf("Set C = RM38.00\n");
            setprice=38.00;
        }
        else
            printf("set not available\n");

        return(setprice);
    }
    float calc(float item_pricing,int quantity){
        float answer;
        answer = item_pricing*quantity;
        return(answer);
    }
    void print_result(float payment){
        printf("total cost = RM%4.2f",payment);
    }

最佳答案

您的代码是正确的,但您错过了一个 } 来关闭您的 main 函数。

您必须在主函数之外声明函数的规范。

es:

/* Forward declarations */
void a();
float b();

/* Main */ 
int main() {
  ...
}

/* Function's specifications */
void a() {
  ...
}

float b() {
   ...
}

关于c - 未定义对确定价格的引用;计算;打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20653194/

相关文章:

c - 错误: expected specifier-qualifier-list before

c - 服务器无法向客户端发送 ump 消息

c - 错误消息 "undefined reference for ` CPU_ZERO'”

c - 如何用C语言用指针实现快速排序?

c - 在 C 中打印数字中的前导零

c - 在同一个程序中启动 TCP 客户端和服务器(在 c 中)

python - 将多个参数传递给函数的最有效方法?

c - 函数 strcpy() 更改整数数组的值?

c - 体系结构 x86_64 的 undefined symbol : getRNGstate() and putRNGstate()

c - 尝试生成每个唯一数字为9的数字