【问题标题】:C++, for-loop, saving values to an array [closed]C ++,for循环,将值保存到数组[关闭]
【发布时间】:2021-09-16 21:06:28
【问题描述】:

我目前正在学习 C++ 的初级步骤和处理数组。我必须为一个课程制作一个程序,该课程接受用户的输入,计算工作时间。用户输入工作天数,并将该值保存到变量amount_days。 for循环还有一个计数器,即count

我创建了一个 for 循环结构,该结构应该在工作天数中重复,并从用户那里获取输入,并将其全部保存到一个数组中。但是,它只取第一个值,然后在不接受用户任何输入的情况下批量打印输出的其余部分。我试图用 for 循环查看我以前的工作,但是,我无法理解我做错了什么。在尝试了多种不同的方法来解决这个问题之后,我还没有找到任何解决方案,即使在更改了变量的初始化之后也是如此。

数组的大小是30。我也尝试过使数组的大小与amount_days相同,但这没有任何改变..

我感觉问题可能很小,可能是新手错误。作为数组的新手,我不太清楚它们是如何与其余代码交互的。

这是目前为止的代码:

int amount_days = 0;
int numarray[30];
int count;

cout << "The program calculates the total amount of\nwork hours during a given time frame and the average work day length." << endl;
cout << "How many days:" << endl;
cin >> amount_days;

for (int count = 0; count < amount_days; count++) {
    cout << "Input hours of workday " << count + 1 << ": " << endl;
    cin >> numarray[count];
}
    
cout << "Here is where the program should proceed.." << endl;

编辑 1: 再次嗨,你们中的一些人要求提供更多详细信息。我将添加我得到的输出。

输出:

The program calculates the total amount of
work hours during a given time frame and the average work day length.
How many days:
5
Input hours of workday 1: 
5.3
Input hours of workday 2: 
Input hours of workday 3: 
Input hours of workday 4: 
Input hours of workday 5: 
Here is where the program should proceed..

编辑 2:事实证明,问题在于 5.3 是浮点值,而不是整数。非常感谢在 cmets 中指出这一点的人!

【问题讨论】:

  • 您是否输入了非数字字符(可能是字母)?
  • 细节很重要。请准确告诉我们您输入的内容
  • 我无法使用此代码重现您的问题。您应该提供输入和相应输出的示例。
  • @1b00ff 太好了。是的,这就是问题所在。您还可以创建一个 floatdouble 的数组,而不是 int 来支持分数。当您使用它时,您可以用可以动态增长的vector&lt;float&gt; 替换固定大小的数组。您只需将 push_back 值放入其中。
  • 嗨,泰德。我试过了,现在完美无缺!非常感谢您指出这一点! @Ted Lyngmo 编辑 1:感谢您的提示。作为 C++ 新手,任何帮助和提示对我来说都很有价值,我期待能够优化我的代码并能够更有效地调试它。

标签: c++ arrays for-loop input


【解决方案1】:

问题原来是我必须输入float 值,并且数组被初始化为int。确实是菜鸟的错误。感谢 Ted 在 cmets 中指出这一点,我能够继续我的小 C++ 项目!

【讨论】:

  • 我建议您在修复之前将代码更改为int x; std::cin &gt;&gt; x; numarray[count] = x;。恕我直言,重要的是要了解实际问题不是数组,而是 std::cin &gt;&gt; 失败。即使数组存储intsfloat x; std::cin &gt;&gt; x; numarray[count] = x; 也可以
猜你喜欢
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 2019-01-29
  • 2012-08-20
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多