我的主要问题是:
使用指针声明多维数组是否有更好(或更有效)的方法?我是否已经完成了我的工作?
编程练习:
你出售 C ++ for Fools 这本书。使用二维数组存储3年月销售额的输入(按书籍数量而非金钱数量)。报告合并年份的总销售额。程序应该使用一个循环来按月提示,使用一个字符串对象数组,初始化为月份字符串并将输入数据存储在二维数组中。然后,程序应找到数组内容的总和,并报告3年的总销售额。
这是我的代码的 SNIPPET :
/* Global constants */
const unsigned int YRS = 3;
const unsigned int MNTHS = 12;
/* Create 2D-Array */
int** bookSalesArrayPtr = new int*[YRS]; // Pointer-to-Array-of-Pointers
for (unsigned int i = 0; i < YRS; ++i) // Each element of bookSalesArrayPtr
bookSalesArrayPtr[i] = new int[MNTHS]; // In each element create new array[12]
以下是我完整源代码的链接:http://ideone.com/LcQeuj
答案 0 :(得分:-1)
任何解决方案都应该尽可能简单。如果不需要指针,那么请避免使用指针,因为它们会使程序复杂化:
int bookSales[YRS][MNTHS];
请注意这是多么容易阅读。请注意,没有代码可以管理分配,销毁或任何其他簿记。
即使这样的结构增加了执行时间(这里极不可能),也要考虑节省多少人力时间(开发人员,维护人员,调试人员,文档)。电脑时间很便宜。人类的时间很宝贵。
对解决方案进行评级时,忽略人力成本是很常见的。