gpt4 book ai didi

c++ - 将大于数组中值的数字存储到另一个数组中

转载 作者:搜寻专家 更新时间:2023-10-31 01:30:42 25 4
gpt4 key购买 nike

我是一名初学者 C++ 程序员,所以我为我的困惑代码道歉。我有一个任务,我需要创建一个函数来传递用户创建的列表/数组,以打印出所有大于 10 的整数和计数。当用户输入负数时,程序将结束并打印用户输入的任何内容(如果有的话)。到目前为止,我的部分解决方案包括:

void PrintGreaterThan(const int list[]) {
int index, finalCount, greaterThan[MAX_SIZE];
finalCount = 0;
for (index = 0; index < MAX_SIZE; index++) {
if (list[index] > 10) {
greaterThan[index] = list[index];
finalCount++;
}

}
cout << "The list contains " << finalCount <<
" non-negative integer(s) that are \ngreater than 10 as follows: " <<
endl;
for (int count = 0; count < finalCount; ++count) {
cout << greaterThan[count] << " ";
}
cout << "\n\n\n";
}

我的程序能够接收诸如 ``1 2 3 4 5 -1 之类的用户输入,并且不打印任何内容,这是正确的。如果我输入 20 30 40 50 2 3 4 -1,程序将只显示超过 10 的数字并正确计数超过 10 的数字,这也是正确的。但是当我输入例如 30 40 2 3 20 40 时,程序将打印出 30 40,然后是错误值。我觉得我错过了一些东西......也许我实现不正确?我想过如果数字是 10 和以下,也许有一种方法可以跳过数组中的元素?该程序有不同的部分,这就是为什么我没有发布整个内容的原因,以防出现太多不必要的细节。谢谢。

最佳答案

问题是您在 listgreaterThan 中使用相同的 index 作为索引。这意味着当一个数字不大于 10 时,您将跳过 greaterThan 中的该索引,并且该元素保持未初始化状态。当您打印结果时,即使您填充了 greaterThan 的更高元素,您也只会上升到 finalCount

您应该为 greaterThan 的索引使用不同的变量。您可以使用 finalCount 变量,因为它会完全按照您的需要递增。

    if (list[index] > 10) {
greaterThan[finalCount] = list[index];
finalCount++;
}

关于c++ - 将大于数组中值的数字存储到另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47218053/

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