【发布时间】: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 太好了。是的,这就是问题所在。您还可以创建一个
float或double的数组,而不是int来支持分数。当您使用它时,您可以用可以动态增长的vector<float>替换固定大小的数组。您只需将push_back值放入其中。 -
嗨,泰德。我试过了,现在完美无缺!非常感谢您指出这一点! @Ted Lyngmo 编辑 1:感谢您的提示。作为 C++ 新手,任何帮助和提示对我来说都很有价值,我期待能够优化我的代码并能够更有效地调试它。