gpt4 book ai didi

c - 如何使用C中的函数记录用户输入数字的频率

转载 作者:行者123 更新时间:2023-11-30 14:50:02 25 4
gpt4 key购买 nike

嘿,我目前正在开发一款乐透类型的游戏,我的要求之一是记录用户输入数字的频率,然后在用户希望看到它们时显示它们。该程序也必须是模块化的,因此功能也必须是模块化的。

我的问题是,我似乎不知道如何跟踪我尝试过很多事情的数字,这是我得到的最接近的数字......

void num_free(int *picked_nums)
{
static int elements[MAX] = { 0 };
int i;

for (i = 0; i < MAX; i++)
if (*(picked_nums + i) == i)
{
elements[i]++;
}

for (i = 0; i < MAX; i++)
{
if (elements[i] != 0)
{
printf("\nThe amount of times you chose %d is %d", i, elements[i]);
}
}

printf("\nEnter any key to return to main menu");
getchar();
}

无论输入如何,每次运行它时都会输出

“你选择11的次数是1”

我真的不知道下一步该做什么,所以任何和所有的帮助将不胜感激。提前致谢!

编辑:用户可以玩多轮,这就是数字频率的累加方式。

最佳答案

我认为您的代码中的主要问题在这里:

if (*(picked_nums + i) == i)
{
elements[i]++;
}

您实际上检查用户选择的第 i 个数字是否等于 i。这意味着只有在这种情况下才会进行增量 - 这不是你想要的(如果我没猜错的话)。

我认为你应该放弃 if 语句,并且假设用户仅选择非负数(并且 elements 数组在开始),执行以下操作:

elements[picked_nums[i]]++;

也就是说,您递增与所选数字匹配的数组单元格(并且 i 只是您用于迭代 picked_num 数组的索引)。

关于c - 如何使用C中的函数记录用户输入数字的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49221401/

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