【问题标题】:How to create a function where it assigns a number to entered information如何创建一个函数,为输入的信息分配一个数字
【发布时间】:2022-12-05 15:54:46
【问题描述】:

这是在 C 中。

我正在尝试创建一个功能,您可以在其中输入基本信息并为您分配一个可以在整个过程中使用的帐号。

运行程序时,它总是输出相同的数字。我不需要它存储在程序之外,但函数和程序应该运行多次。我需要这部分代码才能工作,因为在后面的部分我必须删除输入的信息,我认为最好的方法是将信息分配给一个值,比如帐号,然后用它来删除所有内容。

样本输出:Welcome Test Test to Global Bank。您的帐号是 0 您支票中的初始余额是 100,您的储蓄中的初始余额是 1000。

我想要完成的是让示例输出中的帐号为 1 然后当我再次运行 NewAccount 函数时它应该输出:

欢迎 Test2 Test2 加入环球银行。您的帐号是 2 您支票中的初始余额是 100,您的储蓄中的初始余额是 1000。

这是代码。我曾尝试为结构银行的客户提供 20 (customers[20]) 的值,但这似乎没有帮助。这就是我坚持的地方。

struct Bank
{
char FirstName\[100\];
char LastName\[100\];
int CheckingBalance;
int SavingsBalance;
};

struct Bank customers;

void NewAccount()
{
int i;
int AccountNumber\[20\];
for (i = 1; i \< 20; i++)
AccountNumber\[i\] = i;
scanf("%s", customers.FirstName);
scanf("%s", customers.LastName);
scanf("%d", &customers.CheckingBalance);
scanf("%d", &customers.SavingsBalance);
printf("\nWelcome %s %s to Global Bank. Your account number is %d your initial balance in your checking is %d and your initial balance in your savings is %d.", customers-\>FirstName, customers-\>LastName, AccountNumber, customers-\>CheckingBalance, customers-\>SavingsBalance);

int main()
{

int choice;
while(1){
scanf("%d", &choice);
switch(choice)
{
case 1:
int i;
int AccountNumber[20];
for (i = 1; i < 20; i++)
AccountNumber[i] = i;
NewAccount();
break;
case 3:
break;
case 7:
printf("Have a good day and thank you for banking with Global Bank!\n");
exit(0);
}
}
}

【问题讨论】:

  • 诡异的。我似乎最近用非常相似的代码片段关闭了一个问题,例如也在一个函数的中间结束。你有没有问过这样的人,也许把它删除了?为了以防万一,请理解删除问题并重新提出问题会给您的帐户带来负担,并且您将很难恢复。考虑删除它并处理旧副本。
  • 您的代码不完整。 customers 是单个变量,但您可能需要它们的数组。将帐号添加到您的struct Bank,然后将它们按顺序排列,以便下一个帐户是最后一个 + 1,或者遍历客户并使用 max + 1。您可能不想使用数组索引,顺便说一句,因为删除帐户意味着您现在有一个永久的空位。
  • 你说程序(我假设你的意思是一个包含显示代码的程序,因为显示的代码没有 main() 因此无法运行。)运行并输出一些东西。我对此表示怀疑,因为显示的代码(即使增加了足够多的基本代码......)看起来也不能没有错误地编译。请显示 minimal reproducible example 的代码,它确实编译没有错误并且按照您描述的那样运行。
  • “我曾尝试为客户提供 struct Bank 的值 20 (customers[20])” 正如所指出的那样,这实际上似乎是个好主意。请显示该尝试的 minimal reproducible example。这种尝试“似乎没有帮助”的症状是什么?
  • @AllanWind 推荐什么而不是数组?我假设哈希可能会更好

标签: c function


【解决方案1】:

一个银行”客户,但本身不是客户。所以 Bank 结构的命名相当糟糕。如果一个客户只能有一个帐号,那么也将其作为“客户”结构的一部分。

至于给每个客户一个唯一的帐号,一种简单的方法是使用全局变量跟踪当前的最高号码。然后,当您创建一个新客户时,您将该变量增加一个,并将其分配给客户的特定帐号。

例如:

struct Customer
{
    // Other customer data...
    unsigned AccountNumber;
};

unsigned TopAccountNumber = 0;

struct Customer NewCustomer(void)
{
    struct Customer customer;

    // Initialize other customer data...

    ++TopAccountNumber;  // Increase top account number

    customer.AccountNumber = TopAccountNumber;

    return customer;
}

【讨论】:

  • 谢谢!你关于银行事情的观点是有道理的,我将尝试实施这些事情,如果出现问题,我会做出回应
猜你喜欢
  • 2019-12-05
  • 2020-06-26
  • 2021-03-22
  • 1970-01-01
  • 2020-02-24
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多