这是我第一次在这里发帖。我正在为我的CS II课程开设一个实验室(它已经过期了,所以此时我不会得到任何积分,但我仍然非常想了解我做错了什么,所以我代码远远不够完整,但是我遇到了一个阻止我继续进行操作的挂机。提前道歉,我对此非常生疏,在我生锈之前,我很新。我也是直到早上大约4点试图让它在昨晚上班,所以我的代码可能看起来非常粗糙。
好的,我的问题是这样的:当单步执行代码时,第一个函数getNoMonths
运行得非常好。它会提示用户输入他们要处理数据的销售月数,并将该数字存储在no_Months
main
中。需要在3到6之间的值的验证也可以正常工作。
当我们到达getSales
时,问题出现了。该功能会提示用户在之前定义的许多月的销售值。看起来它完美无缺。然而,经过仔细检查,似乎只有第一个值实际存储在sales
中,它应该是一个数组,其大小根据用户在{{{{}期间定义的月数动态分配1}}。
我确信无论我做错什么都非常简单,我能感受到它。我一直在翻阅文本,试图尽可能多地学习数组和动态内存分配和指针是如何工作的。我得到了他们背后的想法,但正如你可能看到的那样,我真的很难实际实现。
我知道我需要做的是:
......我只是不确定如何实际做到这一点。我也知道我需要有一个指针才能让第二个子弹项目发生,但同样,我还不清楚我究竟需要做什么。
TL; DR我需要一些帮助,让这个getNoMonths
数组保存用户输入的所有值,而不仅仅是第一个。要做到这一点,我可能需要帮助设置一个指针来动态分配sales
数组的大小,最好解释一下这一切对我来说实际上是如何帮助我的,而不仅仅是混乱和冗余,哈哈。
源代码如下:
sales
非常非常感谢您提供任何帮助。我非常,非常绿色,尽管我很努力地想要它,但似乎不可能。我决心要学习这一切是如何工作的,并且能够理解它,以便我自己能够复制它,但是现在我需要一点帮助才能到达那里。没有任何关于这个东西的朋友和一个对我坐下来并帮助我解决这个问题并不十分感兴趣的教授很难。无论如何,我期待着你们的回复,并希望能够学到一些东西。也许有一天,我可以学到足够的东西,能够把回报给新人,而不是我。
更新:更新了源代码;现在正在计算和输出平均值,但仍然无法获得最大值和最小值来执行相同操作。感谢您的帮助,当然,任何进一步的意见都将受到赞赏。
答案 0 :(得分:0)
你的主要问题似乎是
int no_months = 0;
后跟int * sales = new int [no_months];
,它基本上分配了一个大小为0的数组。在分配数组并修复返回类型之前尝试调用getNoMonths
。