gpt4 book ai didi

c++ - 将一行数字数据读入一个数组,然后将下一行读入一个变量。 C++

转载 作者:行者123 更新时间:2023-11-28 05:04:34 25 4
gpt4 key购买 nike

我对编码还很陌生,所以我确信这是一个愚蠢的问题。对于一个类,我需要编写一个算法来确定用 C++ 赚取一些钱的最少更改量。

此代码需要从 txt 文件中读取数字,以便第一行是硬币类型(又名 1 美分、2 美分、4 美分等)。第二行是我要归入零钱的总数。然后第三行是一组新的硬币类型,第四行是新的总数。一般模式仍在继续。

txt 文件看起来像 -

1 2 5
10
1 3 7 12
29
1 2 4 8
15
1 7 11
14

我自己轻松创建了更改算法,我在将第一行读入数组然后将下一行读入变量时遇到问题。

我的 coinChange 算法代码。

    int coinChange(int coins[], int total, int size)
{
//Set high minimum
int min = 999999999;
//For all of the coins, see if it equals the value of total
for (int i = 0; i < size; i++) {
if (coins[i] == total) {
//If so return 1
return 1;
}
}
//Loop through
for (int j = 1; j <= total / 2; j++) {
if ((coinChange(coins, j, size) + coinChange(coins, total - j, size)) < min) {
min = coinChange(coins, j, size) + coinChange(coins, total - j, size);
}
}
return min;
}

我尝试过使用 fgets 和 fscanf 但没有成功,所以任何建议都会非常有帮助。

最佳答案

如果你像 tadman 评论的那样使用 c++,你可以使用类似的东西:

#include <iostream>
#include <string>
#include <sstream>
#include <vector>

int main()
{
std::stringstream ss("1 2 5\n10\n1 3 7 12\n29\n");
std::string line;

while(std::getline(ss, line))
{
std::stringstream lines(line);
std::vector<int> values;
std::string string_value;

while(std::getline(lines, string_value, ' '))
values.push_back(std::stoi(string_value));

std::getline(ss, line);

int value = std::stoi(line);

std::cout << "got: ";
for(const auto& v : values) std::cout << v << ", ";
std::cout << value << std::endl;
}

return 0;
}

在这里试试 http://cpp.sh/33bmy .

关于c++ - 将一行数字数据读入一个数组,然后将下一行读入一个变量。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45132655/

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