gpt4 book ai didi

c - 在像 array[i] 这样的数组中,如何设置条件来查看 [i] 的值并在其高于某个值时退出循环?

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

如果我的帐户[MAX]的最大值为10,并且在循环中提示用户在帐户[MAX]中输入帐户#,我如何编写代码来查看帐户数量是否超过10,以及告诉用户已输入最大帐户数并且不再接受输入?

这是我的 do while 循环

do
{
printf ("Options Available: \n");
printf ("\n 1 - Enter a transaction");
printf ("\n 2 - View the general journal");
printf ("\n 3 - View the balance sheet");
printf ("\n q - Quit the program\n");

printf ("\nPlease enter 1, 2, 3 or q: ");

option = validateoption();

if (option == '1')
{
printf ("\nEnter an account number (between 1000 and 3999): ");
accounts[i] = validateaccount();
printf ("\n");

printf ("Enter d (debit) or c (credit): ");
debcred[i] = validatedebcred();
printf ("\n");

printf ("Enter transaction amount: ");
amount[i] = validateamount();
printf ("\n");

printf ("\n");

i++;
totalinput++;
}

if (option == '2')
journal(accounts, debcred, amount, &totalinput);

if (option == '3')
balancesheet(accounts, debcred, amount, &totalinput);

} while (option != 'q');

假设您输入 1、2、3 或 q,它就会起作用。现在在accounts[i]中,如果帐户数量超过10,我可以写什么来告诉用户已经输入了最大帐户数并且不再接受更多输入?

我的validateaccount函数:

long validateaccount() {  // VALIDATE INPUT FOR ACCOUNT # IN TRANSACTION FUNCTION

int keeptrying = 1, rc;
long i;
char after;

do
{
rc = scanf ("%ld%c", &i, &after);

if (rc == 0)
{
printf (" **Invalid input try again: ");
clear();
}
else if (after != '\n')
{
printf (" **Trailing characters try again: ");
clear();
}
else if (i < 1000 || i > 3999)
{
printf (" **Invalid input try again: ");
}
else
{
keeptrying = 0;
}

} while (keeptrying == 1);

return i;

}

最佳答案

替换

if (option == '1')

if (option == '1' && totalinput < MAX)

当达到最大数量时,选项 1 将被禁用。

您可能还想提前添加检查,因此如果已禁用 printf() 选项 1,则不会使用它。

注意:您同时拥有 itotalinput。我认为如果您删除 i 并仅使用 totalinput 会更好(更容易理解)。 (因为 totalinputsi 更具描述性)

关于c - 在像 array[i] 这样的数组中,如何设置条件来查看 [i] 的值并在其高于某个值时退出循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464139/

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