gpt4 book ai didi

c - 错误 LNK2019 : unresolved external symbol, fatal error LNK1120: 1 无法解析的外部

转载 作者:行者123 更新时间:2023-11-30 19:48:18 25 4
gpt4 key购买 nike

我已经在这个网站上查找了这两个错误,并尝试更改我的代码以适应建议的更改,但它们对我的代码不起作用,所以这是我的代码,希望你们能帮助我。它并不完整,因为我只完成了作业的一半,但我看不到到目前为止我所做的事情,因为它无法正确构建。谢谢!

#include <stdio.h>


//int CheckMoney(double *payment, double item_cost); //compares the amount the user has deposited to the price of item selected. It returns 1 if the amount is at least enough to cover the cost, 0 if there is not enough.
//void GetMoney(double *payment, double item_cost, char selection); //calls CoinMenu function to collect money from the user and CheckMoney function to keep comparing the deposited amount to the item cost.
//void GetChange(double *payment, double item_cost, double *change); //calculates the amount of change to be returned
void CoinMenu(double *payment);
void Quit(char *again);
void GetCost(char selection, double *item_cost);
void Menu(char *selection);

// Displays the list of snack items and prompts for the user’s choice
void Menu(char *selection)
{
printf("Welcome to the AAA vending machine, where your wishes could come true for less than $2");
printf("/nWhich one of our delicious snacks would you like to sink your teeth into?");
printf("/nP – Potato Chips $1.25");
printf("/nS - Snickers Bar $1.35");
printf("/nT – Pop Tart $0.95");
printf("/nC – Cookies $1.50");
printf("/nB – Brownie $1.75");
printf("/nN – Nuts $1.40");
printf("Enter your delicious selection here: ",*selection);
scanf(" %c", &*selection);

//determine cost of selection

GetCost(*selection, 0);
}

//sets the cost of the purchase based on value in selection
void GetCost(char selection, double *item_cost)
{

if(selection=='P'||'p')
{
*item_cost=1.25;
}
else if(selection=='S'||'s')
{
*item_cost=1.35;
}
else if(selection=='T'||'t')
{
*item_cost=0.95;
}
else if(selection=='C'||'c')
{
*item_cost=1.50;
}
else if(selection=='B'||'b')
{
*item_cost=1.75;
}
else if(selection=='N'||'n')
{
*item_cost=1.40;
}
else
{
printf("That is not a valid selection, have a nice day!");
return;
}
}

//displays menu of coins and gets user input of the coins deposited
void CoinMenu(double *payment)
{
printf("Please deposit your money by the following numbers:");
printf("/n1 - $5.00");
printf("/n2 - $2.00");
printf("/n3 - $1.00");
printf("/n4 - $0.25");
printf("/n5 - $0.10");
printf("/n6 - $0.05");
printf("/n7 - $0.01");
printf("/nAmount deposited: ");
scanf(" %c", &*payment);
}




void Quit(char *again)
{
printf("Would you like to buy another snack?");
printf("/nEnter Y for yes or N for no: ", *again);
if(*again=='N'||'n')
{
return;
}
else if(*again=='Y'||'y')
{
void Menu(char *selection);
}
}

最佳答案

对于您问题中提到的错误 - 您没有 main()函数,并且在编写一个完整的 C 程序之前,您并没有一个完整的 C 程序。您的链接器正在寻找它,并在找不到它时给您一个错误。

这里还有很多其他错误,包括:

  1. printf("/n1 - $5.00"); - 这是\n ,不是/n ,并且不清楚为什么要将换行符放在行的开头而不是结尾: printf("/nN – Nuts $1.40"); printf("Enter your delicious selection here: ",*selection);例如,会给你一些看起来很奇怪的文本。

  2. 说到这里,printf("Enter your delicious selection here: ",*selection); - 您提供char作为 printf() 的参数,但根据您的格式字符串,它不需要任何参数。应该是printf("Enter your delicious selection here: ");由于您没有用换行符终止它,因此您还应该添加 fflush(stdout);在您调用 scanf() 之前.

  3. scanf(" %c", &*selection); - 为什么取消引用指针只是为了再次获取它的地址?有一些充分的理由不这样做,包括它相当于获取临时值的地址,这是非法的。你已经有了一个指针,所以使用它 - 应该是 scanf(" %c", selection);

  4. if(selection=='P'||'p') - 二元逻辑运算符的工作方式与 C 中不同,应该是 if ( selection == 'P' || selection == 'p' ) .

  5. scanf(" %c", &*payment); - 与上面第 3 点相同的问题,加上这里 paymentdouble * ,你告诉 scanf()阅读char 。应该是scanf("%lf", payment);

  6. void Menu(char *selection);在底部 - 正如对您的主要问题的评论中所指出的,这是一个函数声明,而不是函数调用,并且实际上在这里不执行任何操作。应该是Menu(again) ,尽管实际上它应该只返回 true 或 false,并且调用者应该决定是否调用 Menu()再次。

其中一些错误在您的代码中的不同位置重复出现,我没有列出每个示例。这种指针的传递也是非常奇怪的设计。您的所有函数都被声明为返回 void - 如果您将它们更改为返回值并使用一些局部变量,那么您将能够完全避免传递任何指针。

关于c - 错误 LNK2019 : unresolved external symbol, fatal error LNK1120: 1 无法解析的外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com