【发布时间】:2019-08-05 18:01:49
【问题描述】:
Input: 30 30 30 40 40 50 50 4 4 4 4
output: 3 30 2 40 2 50 4 4
我必须接受这些整数并在计数旁边显示每个唯一数字的计数。
老实说,我不知道在输入的最后一个整数 4 之前接受什么条件,并且不接受无限或一些垃圾值。因为所有测试用例都没有与输入相同数量的值。请解释我需要使用什么函数/逻辑来接受有限数量的整数。
我使用了一个 for 循环,它接受并在向量中存储值 99 次,因为问题说我可以接受的最大整数数是 99。但是对于上述测试用例,接受了 11 个必需的整数,并且其余 87 个是垃圾/最后一个整数值...
它接受了 30 30 30 40 40 50 50 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 .........(直到第 99 个循环)
(如果可以的话,我会附上我所做的截图。我没有这样做是因为,1)我被要求在比赛中编写这个代码,所以我不记得我们当时的确切问题不允许将我们的粗糙床单带出去。 2)我无法做出体面的尝试来解决它,因为我什至不知道如何在不接受垃圾值的情况下接受整数。抱歉,不确定!)
【问题讨论】:
-
一般输入为“signaled”。如果这是针对编程挑战,则流将进入“输入结束”状态,这将为您停止输入循环。看看这个问答对了解该技术以及会发生什么:stackoverflow.com/questions/50608176/…
-
在 C++ 中有多种方法可以验证输入。至少展示你已经尝试过的一些努力以及失败的原因。
-
定义随机值你认为它适用于你的应用程序。
-
如何判断一个值是否随机?
-
因为所有测试用例都没有与输入相同数量的值。这就是您需要
std::vector而不是固定大小的数组。